From 64697d4ca7285a26118ffe8e94dfed03e918dfab Mon Sep 17 00:00:00 2001 From: freeCodeCamp's Camper Bot Date: Tue, 28 May 2024 13:27:56 +0530 Subject: [PATCH] chore(i18n,learn): processed translations (#54988) Co-authored-by: Naomi --- .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 14 +- .../65822308ded1ba4632f66aa3.md | 16 +- .../658225d560369446ece5518b.md | 14 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 16 +- .../65822934c8a0454803e3ef12.md | 12 +- .../65822bd82d708c4895080c35.md | 7 +- .../65823040bdb32949d4c1a96f.md | 6 +- .../6582324b5d37fe4b622bc3c0.md | 14 +- .../65823634a308cb4d6bcc5fa6.md | 4 +- .../658238f7604f154ea9a23e1e.md | 6 +- .../65823b0167fd894f4a7ea60a.md | 14 +- .../65823bbbdb4eaa4f9d20a0fb.md | 23 +- .../65823cfc74aa564ffc460489.md | 25 +- .../65823dde36392f505a39f7c7.md | 13 +- .../65823e87c9741750a22085a7.md | 2 +- .../65823ff0d4b991510fade1a8.md | 21 +- .../65824111a09164518320088d.md | 29 +- .../658244fdf4b0265334711664.md | 11 +- .../65824561f3478e5371a33ae5.md | 11 +- .../658246c28575d653d1f89b59.md | 24 +- .../65824872894f59546e3084e2.md | 19 +- .../65824a1b16631c54fa524154.md | 17 +- .../65824c7b4e2da85597693dcf.md | 43 +- .../65824dfdb6815d563b2d3256.md | 21 +- .../6582507654b3ed5712341382.md | 35 +- .../658252f6b1526d57b103d48a.md | 17 +- .../658254db6e12485a48130f57.md | 14 +- .../658255d5f955175b270f251d.md | 21 +- .../6582575b8089f85b8b92d7c8.md | 27 +- .../658258c0e5fbe85c14c060cf.md | 31 +- .../65825a9520a0795c8afbef50.md | 19 +- .../65825b758fe85a5cebabc8c5.md | 27 +- .../65825cda2668995d5168e37c.md | 35 +- .../65825e96b5db5f5dee6bf57c.md | 13 +- .../6582601b2987045e8e7da994.md | 25 +- .../6582622cb6c11a5f4c5d79b4.md | 21 +- .../6582687859366a618424d84b.md | 31 +- .../65826a6e9d189a623141c726.md | 15 +- .../65826af5b226a5628aa154b1.md | 61 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 4 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 6 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 6 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 32 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 4 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 8 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 6 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 4 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 14 +- .../65822308ded1ba4632f66aa3.md | 16 +- .../658225d560369446ece5518b.md | 14 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 16 +- .../65822934c8a0454803e3ef12.md | 12 +- .../65822bd82d708c4895080c35.md | 7 +- .../65823040bdb32949d4c1a96f.md | 6 +- .../6582324b5d37fe4b622bc3c0.md | 14 +- .../65823634a308cb4d6bcc5fa6.md | 4 +- .../658238f7604f154ea9a23e1e.md | 6 +- .../65823b0167fd894f4a7ea60a.md | 14 +- .../65823bbbdb4eaa4f9d20a0fb.md | 23 +- .../65823cfc74aa564ffc460489.md | 25 +- .../65823dde36392f505a39f7c7.md | 13 +- .../65823e87c9741750a22085a7.md | 2 +- .../65823ff0d4b991510fade1a8.md | 21 +- .../65824111a09164518320088d.md | 29 +- .../658244fdf4b0265334711664.md | 11 +- .../65824561f3478e5371a33ae5.md | 11 +- .../658246c28575d653d1f89b59.md | 24 +- .../65824872894f59546e3084e2.md | 19 +- .../65824a1b16631c54fa524154.md | 17 +- .../65824c7b4e2da85597693dcf.md | 43 +- .../65824dfdb6815d563b2d3256.md | 21 +- .../6582507654b3ed5712341382.md | 35 +- .../658252f6b1526d57b103d48a.md | 17 +- .../658254db6e12485a48130f57.md | 14 +- .../658255d5f955175b270f251d.md | 21 +- .../6582575b8089f85b8b92d7c8.md | 27 +- .../658258c0e5fbe85c14c060cf.md | 31 +- .../65825a9520a0795c8afbef50.md | 19 +- .../65825b758fe85a5cebabc8c5.md | 27 +- .../65825cda2668995d5168e37c.md | 35 +- .../65825e96b5db5f5dee6bf57c.md | 13 +- .../6582601b2987045e8e7da994.md | 25 +- .../6582622cb6c11a5f4c5d79b4.md | 21 +- .../6582687859366a618424d84b.md | 31 +- .../65826a6e9d189a623141c726.md | 15 +- .../65826af5b226a5628aa154b1.md | 61 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 4 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 6 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 6 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 2 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 2 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 8 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 6 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 2 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../649353647c44ef4867ab4935.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 14 +- .../65822308ded1ba4632f66aa3.md | 16 +- .../658225d560369446ece5518b.md | 14 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 16 +- .../65822934c8a0454803e3ef12.md | 12 +- .../65822bd82d708c4895080c35.md | 7 +- .../65823040bdb32949d4c1a96f.md | 6 +- .../6582324b5d37fe4b622bc3c0.md | 14 +- .../65823634a308cb4d6bcc5fa6.md | 4 +- .../658238f7604f154ea9a23e1e.md | 6 +- .../65823b0167fd894f4a7ea60a.md | 14 +- .../65823bbbdb4eaa4f9d20a0fb.md | 23 +- .../65823cfc74aa564ffc460489.md | 25 +- .../65823dde36392f505a39f7c7.md | 13 +- .../65823e87c9741750a22085a7.md | 2 +- .../65823ff0d4b991510fade1a8.md | 21 +- .../65824111a09164518320088d.md | 29 +- .../658244fdf4b0265334711664.md | 11 +- .../65824561f3478e5371a33ae5.md | 11 +- .../658246c28575d653d1f89b59.md | 24 +- .../65824872894f59546e3084e2.md | 19 +- .../65824a1b16631c54fa524154.md | 17 +- .../65824c7b4e2da85597693dcf.md | 43 +- .../65824dfdb6815d563b2d3256.md | 21 +- .../6582507654b3ed5712341382.md | 35 +- .../658252f6b1526d57b103d48a.md | 17 +- .../658254db6e12485a48130f57.md | 14 +- .../658255d5f955175b270f251d.md | 21 +- .../6582575b8089f85b8b92d7c8.md | 27 +- .../658258c0e5fbe85c14c060cf.md | 31 +- .../65825a9520a0795c8afbef50.md | 19 +- .../65825b758fe85a5cebabc8c5.md | 27 +- .../65825cda2668995d5168e37c.md | 35 +- .../65825e96b5db5f5dee6bf57c.md | 13 +- .../6582601b2987045e8e7da994.md | 25 +- .../6582622cb6c11a5f4c5d79b4.md | 21 +- .../6582687859366a618424d84b.md | 31 +- .../65826a6e9d189a623141c726.md | 15 +- .../65826af5b226a5628aa154b1.md | 61 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 4 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 6 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 6 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 2 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 2 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 8 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 6 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 2 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../649353647c44ef4867ab4935.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 14 +- .../65822308ded1ba4632f66aa3.md | 16 +- .../658225d560369446ece5518b.md | 14 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 16 +- .../65822934c8a0454803e3ef12.md | 12 +- .../65822bd82d708c4895080c35.md | 7 +- .../65823040bdb32949d4c1a96f.md | 6 +- .../6582324b5d37fe4b622bc3c0.md | 14 +- .../65823634a308cb4d6bcc5fa6.md | 4 +- .../658238f7604f154ea9a23e1e.md | 6 +- .../65823b0167fd894f4a7ea60a.md | 14 +- .../65823bbbdb4eaa4f9d20a0fb.md | 23 +- .../65823cfc74aa564ffc460489.md | 25 +- .../65823dde36392f505a39f7c7.md | 13 +- .../65823e87c9741750a22085a7.md | 2 +- .../65823ff0d4b991510fade1a8.md | 21 +- .../65824111a09164518320088d.md | 29 +- .../658244fdf4b0265334711664.md | 11 +- .../65824561f3478e5371a33ae5.md | 11 +- .../658246c28575d653d1f89b59.md | 24 +- .../65824872894f59546e3084e2.md | 19 +- .../65824a1b16631c54fa524154.md | 17 +- .../65824c7b4e2da85597693dcf.md | 43 +- .../65824dfdb6815d563b2d3256.md | 21 +- .../6582507654b3ed5712341382.md | 35 +- .../658252f6b1526d57b103d48a.md | 17 +- .../658254db6e12485a48130f57.md | 14 +- .../658255d5f955175b270f251d.md | 21 +- .../6582575b8089f85b8b92d7c8.md | 27 +- .../658258c0e5fbe85c14c060cf.md | 31 +- .../65825a9520a0795c8afbef50.md | 19 +- .../65825b758fe85a5cebabc8c5.md | 27 +- .../65825cda2668995d5168e37c.md | 35 +- .../65825e96b5db5f5dee6bf57c.md | 13 +- .../6582601b2987045e8e7da994.md | 25 +- .../6582622cb6c11a5f4c5d79b4.md | 21 +- .../6582687859366a618424d84b.md | 31 +- .../65826a6e9d189a623141c726.md | 15 +- .../65826af5b226a5628aa154b1.md | 61 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 4 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 6 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 6 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 32 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 4 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 8 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 6 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 4 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 14 +- .../65822308ded1ba4632f66aa3.md | 16 +- .../658225d560369446ece5518b.md | 14 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 16 +- .../65822934c8a0454803e3ef12.md | 12 +- .../65822bd82d708c4895080c35.md | 7 +- .../65823040bdb32949d4c1a96f.md | 6 +- .../6582324b5d37fe4b622bc3c0.md | 14 +- .../65823634a308cb4d6bcc5fa6.md | 4 +- .../658238f7604f154ea9a23e1e.md | 6 +- .../65823b0167fd894f4a7ea60a.md | 14 +- .../65823bbbdb4eaa4f9d20a0fb.md | 23 +- .../65823cfc74aa564ffc460489.md | 25 +- .../65823dde36392f505a39f7c7.md | 13 +- .../65823e87c9741750a22085a7.md | 2 +- .../65823ff0d4b991510fade1a8.md | 21 +- .../65824111a09164518320088d.md | 29 +- .../658244fdf4b0265334711664.md | 11 +- .../65824561f3478e5371a33ae5.md | 11 +- .../658246c28575d653d1f89b59.md | 24 +- .../65824872894f59546e3084e2.md | 19 +- .../65824a1b16631c54fa524154.md | 17 +- .../65824c7b4e2da85597693dcf.md | 43 +- .../65824dfdb6815d563b2d3256.md | 21 +- .../6582507654b3ed5712341382.md | 35 +- .../658252f6b1526d57b103d48a.md | 17 +- .../658254db6e12485a48130f57.md | 14 +- .../658255d5f955175b270f251d.md | 21 +- .../6582575b8089f85b8b92d7c8.md | 27 +- .../658258c0e5fbe85c14c060cf.md | 31 +- .../65825a9520a0795c8afbef50.md | 19 +- .../65825b758fe85a5cebabc8c5.md | 27 +- .../65825cda2668995d5168e37c.md | 35 +- .../65825e96b5db5f5dee6bf57c.md | 13 +- .../6582601b2987045e8e7da994.md | 25 +- .../6582622cb6c11a5f4c5d79b4.md | 21 +- .../6582687859366a618424d84b.md | 31 +- .../65826a6e9d189a623141c726.md | 15 +- .../65826af5b226a5628aa154b1.md | 61 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 4 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 6 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 6 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 32 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 4 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 8 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 6 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 4 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 2 +- .../65822934c8a0454803e3ef12.md | 2 +- .../65822bd82d708c4895080c35.md | 2 +- .../65823040bdb32949d4c1a96f.md | 4 +- .../6582324b5d37fe4b622bc3c0.md | 4 +- .../6582352cbdbcde4d0c4f7b0b.md | 4 +- .../65823634a308cb4d6bcc5fa6.md | 6 +- .../658238f7604f154ea9a23e1e.md | 4 +- .../65823b0167fd894f4a7ea60a.md | 4 +- .../65823bbbdb4eaa4f9d20a0fb.md | 4 +- .../65823cfc74aa564ffc460489.md | 4 +- .../65823dde36392f505a39f7c7.md | 4 +- .../65823e87c9741750a22085a7.md | 6 +- .../65823ff0d4b991510fade1a8.md | 6 +- .../65824111a09164518320088d.md | 10 +- .../658244fdf4b0265334711664.md | 6 +- .../65824561f3478e5371a33ae5.md | 6 +- .../658246c28575d653d1f89b59.md | 8 +- .../65824872894f59546e3084e2.md | 10 +- .../65824a1b16631c54fa524154.md | 8 +- .../65824c7b4e2da85597693dcf.md | 8 +- .../65824dfdb6815d563b2d3256.md | 10 +- .../6582507654b3ed5712341382.md | 10 +- .../658252f6b1526d57b103d48a.md | 10 +- .../658254db6e12485a48130f57.md | 12 +- .../658255d5f955175b270f251d.md | 12 +- .../6582575b8089f85b8b92d7c8.md | 14 +- .../658258c0e5fbe85c14c060cf.md | 12 +- .../65825a9520a0795c8afbef50.md | 12 +- .../65825b758fe85a5cebabc8c5.md | 14 +- .../65825cda2668995d5168e37c.md | 12 +- .../65825e96b5db5f5dee6bf57c.md | 12 +- .../6582601b2987045e8e7da994.md | 12 +- .../6582622cb6c11a5f4c5d79b4.md | 12 +- .../6582687859366a618424d84b.md | 12 +- .../65826a6e9d189a623141c726.md | 12 +- .../65826af5b226a5628aa154b1.md | 26 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 4 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 6 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 6 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 32 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 4 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 8 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 6 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 4 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - ...ont-awesome-icons-to-all-of-our-buttons.md | 2 +- .../jquery/remove-an-element-using-jquery.md | 2 +- ...t-the-parent-of-an-element-using-jquery.md | 2 +- .../moving-forward-from-here.md | 2 +- .../react/create-a-controlled-input.md | 2 +- .../react/introducing-inline-styles.md | 2 +- .../react/pass-an-array-as-props.md | 4 +- .../react/use-state-to-toggle-an-element.md | 2 +- .../redux/dispatch-an-action-event.md | 2 +- .../redux/write-a-counter-with-redux.md | 2 +- .../use-each-to-map-over-items-in-a-list.md | 2 +- ...if-and-else-to-add-logic-to-your-styles.md | 6 +- .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 14 +- .../65822308ded1ba4632f66aa3.md | 16 +- .../658225d560369446ece5518b.md | 14 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 16 +- .../65822934c8a0454803e3ef12.md | 12 +- .../65822bd82d708c4895080c35.md | 7 +- .../65823040bdb32949d4c1a96f.md | 6 +- .../6582324b5d37fe4b622bc3c0.md | 14 +- .../65823634a308cb4d6bcc5fa6.md | 4 +- .../658238f7604f154ea9a23e1e.md | 6 +- .../65823b0167fd894f4a7ea60a.md | 14 +- .../65823bbbdb4eaa4f9d20a0fb.md | 23 +- .../65823cfc74aa564ffc460489.md | 25 +- .../65823dde36392f505a39f7c7.md | 13 +- .../65823e87c9741750a22085a7.md | 2 +- .../65823ff0d4b991510fade1a8.md | 21 +- .../65824111a09164518320088d.md | 29 +- .../658244fdf4b0265334711664.md | 11 +- .../65824561f3478e5371a33ae5.md | 11 +- .../658246c28575d653d1f89b59.md | 24 +- .../65824872894f59546e3084e2.md | 19 +- .../65824a1b16631c54fa524154.md | 17 +- .../65824c7b4e2da85597693dcf.md | 43 +- .../65824dfdb6815d563b2d3256.md | 21 +- .../6582507654b3ed5712341382.md | 35 +- .../658252f6b1526d57b103d48a.md | 17 +- .../658254db6e12485a48130f57.md | 14 +- .../658255d5f955175b270f251d.md | 21 +- .../6582575b8089f85b8b92d7c8.md | 27 +- .../658258c0e5fbe85c14c060cf.md | 31 +- .../65825a9520a0795c8afbef50.md | 19 +- .../65825b758fe85a5cebabc8c5.md | 27 +- .../65825cda2668995d5168e37c.md | 35 +- .../65825e96b5db5f5dee6bf57c.md | 13 +- .../6582601b2987045e8e7da994.md | 25 +- .../6582622cb6c11a5f4c5d79b4.md | 21 +- .../6582687859366a618424d84b.md | 31 +- .../65826a6e9d189a623141c726.md | 15 +- .../65826af5b226a5628aa154b1.md | 61 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 4 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 4 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 32 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 4 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 4 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 4 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 4 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 14 +- .../65822308ded1ba4632f66aa3.md | 16 +- .../658225d560369446ece5518b.md | 14 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 16 +- .../65822934c8a0454803e3ef12.md | 12 +- .../65822bd82d708c4895080c35.md | 7 +- .../65823040bdb32949d4c1a96f.md | 6 +- .../6582324b5d37fe4b622bc3c0.md | 14 +- .../65823634a308cb4d6bcc5fa6.md | 4 +- .../658238f7604f154ea9a23e1e.md | 6 +- .../65823b0167fd894f4a7ea60a.md | 14 +- .../65823bbbdb4eaa4f9d20a0fb.md | 23 +- .../65823cfc74aa564ffc460489.md | 25 +- .../65823dde36392f505a39f7c7.md | 13 +- .../65823e87c9741750a22085a7.md | 2 +- .../65823ff0d4b991510fade1a8.md | 21 +- .../65824111a09164518320088d.md | 29 +- .../658244fdf4b0265334711664.md | 11 +- .../65824561f3478e5371a33ae5.md | 11 +- .../658246c28575d653d1f89b59.md | 24 +- .../65824872894f59546e3084e2.md | 19 +- .../65824a1b16631c54fa524154.md | 17 +- .../65824c7b4e2da85597693dcf.md | 43 +- .../65824dfdb6815d563b2d3256.md | 21 +- .../6582507654b3ed5712341382.md | 35 +- .../658252f6b1526d57b103d48a.md | 17 +- .../658254db6e12485a48130f57.md | 14 +- .../658255d5f955175b270f251d.md | 21 +- .../6582575b8089f85b8b92d7c8.md | 27 +- .../658258c0e5fbe85c14c060cf.md | 31 +- .../65825a9520a0795c8afbef50.md | 19 +- .../65825b758fe85a5cebabc8c5.md | 27 +- .../65825cda2668995d5168e37c.md | 35 +- .../65825e96b5db5f5dee6bf57c.md | 13 +- .../6582601b2987045e8e7da994.md | 25 +- .../6582622cb6c11a5f4c5d79b4.md | 21 +- .../6582687859366a618424d84b.md | 31 +- .../65826a6e9d189a623141c726.md | 15 +- .../65826af5b226a5628aa154b1.md | 61 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 4 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 6 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 6 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 32 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 4 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 8 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 6 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 4 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 2 +- .../65822308ded1ba4632f66aa3.md | 2 +- .../658225d560369446ece5518b.md | 2 +- .../6582267ef39f5047411c1743.md | 4 +- .../65822773f4c60a479ec89f66.md | 4 +- .../65822934c8a0454803e3ef12.md | 4 +- .../65822bd82d708c4895080c35.md | 4 +- .../65823040bdb32949d4c1a96f.md | 4 +- .../6582324b5d37fe4b622bc3c0.md | 6 +- .../6582352cbdbcde4d0c4f7b0b.md | 6 +- .../65823634a308cb4d6bcc5fa6.md | 8 +- .../658238f7604f154ea9a23e1e.md | 4 +- .../65823b0167fd894f4a7ea60a.md | 4 +- .../65823bbbdb4eaa4f9d20a0fb.md | 4 +- .../65823cfc74aa564ffc460489.md | 4 +- .../65823dde36392f505a39f7c7.md | 4 +- .../65823e87c9741750a22085a7.md | 6 +- .../65823ff0d4b991510fade1a8.md | 6 +- .../65824111a09164518320088d.md | 10 +- .../658244fdf4b0265334711664.md | 6 +- .../65824561f3478e5371a33ae5.md | 6 +- .../658246c28575d653d1f89b59.md | 8 +- .../65824872894f59546e3084e2.md | 10 +- .../65824a1b16631c54fa524154.md | 8 +- .../65824c7b4e2da85597693dcf.md | 8 +- .../65824dfdb6815d563b2d3256.md | 10 +- .../6582507654b3ed5712341382.md | 10 +- .../658252f6b1526d57b103d48a.md | 10 +- .../658254db6e12485a48130f57.md | 12 +- .../658255d5f955175b270f251d.md | 12 +- .../6582575b8089f85b8b92d7c8.md | 14 +- .../658258c0e5fbe85c14c060cf.md | 12 +- .../65825a9520a0795c8afbef50.md | 12 +- .../65825b758fe85a5cebabc8c5.md | 14 +- .../65825cda2668995d5168e37c.md | 12 +- .../65825e96b5db5f5dee6bf57c.md | 12 +- .../6582601b2987045e8e7da994.md | 12 +- .../6582622cb6c11a5f4c5d79b4.md | 12 +- .../6582687859366a618424d84b.md | 12 +- .../65826a6e9d189a623141c726.md | 12 +- .../65826af5b226a5628aa154b1.md | 26 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 4 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 32 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 4 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 6 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 4 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 4 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635090f47eb6d9563a6fed05.md | 2 +- .../635091f8dbf554575fb5aa0c.md | 130 --- .../6352e79d15aae30fac58f48e.md | 2 +- .../6352e80e024e89111600edfb.md | 2 +- .../6352e93db104661305c5f658.md | 2 +- .../6352e96d2604f813c656750b.md | 2 +- .../6352ea3a5b79e614ee2282fd.md | 2 +- .../6352ebd3ab962c168a122e85.md | 2 +- .../6352ec8b9c70fd17b8c7ba3f.md | 2 +- .../6352ecef9f045519063da9b3.md | 2 +- .../6352edee8a4de01ad693f0e4.md | 2 +- .../6352ee566a59d31d24bde74b.md | 2 +- .../6352f09b1e53a420e7873344.md | 2 +- .../6352f179bdca23221298a5ba.md | 2 +- .../6352f2526dccb523150b64fb.md | 2 +- .../6352f2a24eb71b24284ca2b6.md | 2 +- .../6352faf71a9db52631864634.md | 2 +- .../6352fbb93a91a8272f838d42.md | 2 +- .../6352fcb156834128001ea945.md | 2 +- .../6352fce75b2d3b2924930f1e.md | 2 +- .../6352fe473d53592a40ae403b.md | 2 +- .../6352fed209792d2b89e92ea1.md | 2 +- .../6352ff27e0e51b2c7dce0010.md | 2 +- .../6352ffe4cfafa72d595a0007.md | 2 +- .../6353004b235d7a2e0b913f2b.md | 2 +- .../6353024f5eab012fa2f57eec.md | 2 +- .../6353028147d3c7309017216a.md | 2 +- .../635302be760d6031d11a06cd.md | 2 +- .../6374249d3fbf2a5b079ba036.md | 2 +- .../65aac0678d51b3f1a0cb8061.md | 2 +- .../65c4dc57418fd6bfc710d61d.md | 2 +- .../65ca2d0625aa3a3201067f70.md | 2 +- .../65e62efde0592ec4b4bb6a69.md | 2 +- .../65f83a7ca7047318e3ccff7c.md | 2 +- .../661890c4abae9f2a0eddad6b.md | 2 +- .../661899113600ef307d8a7487.md | 2 +- .../6618a3264f955339063d3328.md | 2 +- .../6618abf6368d073f0f659780.md | 2 +- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443c98ac169e501eba36d04.md | 2 +- .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444062a33ab4c03d0c2e9f5.md | 2 +- .../64440a50d076c204051f2cc0.md | 2 +- .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../6444f324c287170220eee013.md | 2 +- .../6446d8f9fce0fa0172473964.md | 2 +- .../644b6d20eabd7e0149383254.md | 2 +- .../644b736c83c5250181633899.md | 2 +- .../644b97360868a301bf9ba463.md | 2 +- .../644ba3c43bb57f020ca57834.md | 2 +- .../644baae059c58402a31e815a.md | 2 +- .../644f360e888420013dbe705f.md | 2 +- .../644f4bcf1c2afd0211cd945e.md | 2 +- .../644f848af645ce012bd1a2bc.md | 2 +- .../644fa585a5f9970173ca3cff.md | 2 +- .../644fb1d7f0257702a0c935cf.md | 2 +- .../644fba64caf60303c9540d14.md | 2 +- .../645763874fd6d901c273db29.md | 2 +- .../645f06144bc0dc0143a5a3a2.md | 2 +- .../645f1cffc7f95e01db009f32.md | 2 +- .../645f34e7925b68021ce0bcaa.md | 2 +- .../645f7231271ab1012bc659b8.md | 2 +- .../645f764c37de33015ded1273.md | 2 +- .../645f7879ebbdb201892e55e1.md | 2 +- .../645f8615fa144d01c476b22c.md | 2 +- .../645f958584305d02bf48fe5b.md | 2 +- .../646474a88d0d4a016f895ba8.md | 2 +- .../64648c3254e52901e36e7703.md | 2 +- .../646494e11d0cab03caee204c.md | 2 +- .../64649b108df035051cb2ba2d.md | 2 +- .../6576076879130f6cf7426e82.md | 2 +- .../65760954561c726e832a0cc8.md | 2 +- .../65760ce115eb06716baeb361.md | 2 +- .../65760de70283687288fe70cf.md | 2 +- .../6407c303b4272606c019f338.md | 2 +- .../6407c4abf5be6d07d8c12ade.md | 2 +- .../6407c627ddc93708c8dee796.md | 2 +- .../6407c6a2c2159309994779a5.md | 2 +- .../6407c6d3f19c4e0a7ba320bb.md | 2 +- .../6407c722498bc80b76d29073.md | 2 +- .../6410da6df463a606dfade96f.md | 2 +- .../6410dfb965c72108196ef24a.md | 2 +- .../6410e1b58efc2c091a13bcd9.md | 2 +- .../6410e3c19c21cd09c32dc7c6.md | 2 +- .../6410e70c84bb660b4d2a5ea1.md | 2 +- .../6410edb33eeaf50dd9a22ab4.md | 2 +- .../6410efff0ae97c0f06856511.md | 2 +- .../6410f149110ec60fd40fcfe1.md | 2 +- .../6410f97a721cd1144804b7a8.md | 2 +- .../6410f9a443d57414ee50fada.md | 2 +- .../6410fb3b68429716a810ea4b.md | 2 +- .../6410fcd1f731fd17cdb101a7.md | 2 +- .../6411024727181d190ef03166.md | 2 +- .../64110377201e7b1a0de0d558.md | 2 +- .../64110727cefd3d1d9bdb0128.md | 2 +- .../6411083020a3101e9514a0f5.md | 2 +- .../64110998bc00321fd8052ab5.md | 2 +- .../64110a03f6a450209b01f45c.md | 2 +- .../64110b1849454521871243ca.md | 2 +- .../6411108bc8b9c324f66aab4c.md | 2 +- .../641110e4fb696b259dbf0bcf.md | 2 +- .../6411135e9ee2fa26c882eb02.md | 2 +- .../64112c9cf53d632910ea2f9b.md | 2 +- .../64112cea9e6ac22a314628b0.md | 2 +- .../64112d0943e1bb2aef11e2d1.md | 2 +- .../64112fa63a0f812c66499a54.md | 2 +- .../641130423e5f512d8972dae1.md | 2 +- .../64113124efd2852edafaf25f.md | 2 +- .../64113249bab9952fb2ce4469.md | 2 +- .../6621c5f02a5c272761db8661.md | 2 +- .../6621d0dd6798b121bd2ed823.md | 2 +- .../662236690376072dc79d9c27.md | 2 +- .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 4 +- .../62a1166ed9a56d439c0770e7.md | 4 +- .../62a23c1d505bfa13747c8a9b.md | 4 +- .../62a23cb9bc467a147516b500.md | 4 +- .../62a23d1c5f1c93161f3582ae.md | 4 +- .../62a2401b9842721796b72850.md | 4 +- .../62a24068d60b671847d1d4e2.md | 4 +- .../62a2409897ec621942234cf6.md | 4 +- .../62a240c67f3dbb1a1e6d95ee.md | 4 +- .../62a24128d5e8af1b47ad1aab.md | 4 +- .../62a24190868ca51c0b6e83c7.md | 4 +- .../62a241df03c1f61ce936f5d9.md | 4 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a75d8466a12e009eff76.md | 2 +- .../62a3a7e4f1060e2fc5ffb34b.md | 16 +- .../62a3b3eab50e193608c19fc6.md | 4 +- .../62a3b41c9494f937560640ab.md | 4 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 4 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 4 +- .../62a3bec30ea7f941412512dc.md | 4 +- .../62a3c0ab883fd9435cd5c518.md | 4 +- .../62a3c2fccf186146b59c6e96.md | 4 +- .../62a3c4a0e52767482c5202d4.md | 4 +- .../62a3c668afc43b4a134cca81.md | 4 +- .../62a3c8bf3980c14c438d2aed.md | 4 +- .../62a3c91a2bab1b4d6fabb726.md | 4 +- .../62a3cdb11478a34ff4a6470d.md | 4 +- .../62a3cfc8328d3351b95d4f61.md | 4 +- .../62a7beb1ad61211ac153707f.md | 4 +- .../62a7bf06d2ad9d1c5024e833.md | 4 +- .../62a7bfabe119461eb13ccbd6.md | 4 +- .../62a7bfd9179b7f1f6a15fb1e.md | 4 +- .../62a7c011eef9fb2084b966db.md | 4 +- .../62a7c071219da921758a35bb.md | 4 +- .../62a7c23e6b511f22ed71197a.md | 4 +- .../62a7cc99577fbf25ee7a7d76.md | 4 +- .../62a8a929e4260d08093756d2.md | 4 +- .../62a8a9d876b2580943ba9351.md | 4 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 4 +- .../62a8ac194679e60cb561b0a8.md | 4 +- .../62a8ad8e01d7cb0deae5ec66.md | 4 +- .../62a8ade9b2f5b30ef0b606c2.md | 4 +- .../62a8ae85fcaedc0fddc7ca4f.md | 4 +- .../62a8b0b5053f16111b0b6b5f.md | 4 +- .../62a8b1762b7775124622e1a3.md | 4 +- .../62a8b3cc436db8139cc5fc09.md | 4 +- .../62a8b6536156c51500739b41.md | 4 +- .../62a8b711ab7a12161c7d9b67.md | 4 +- .../62a8b9770050d217d2247801.md | 4 +- .../62a8c0c8313e891a15ec23e7.md | 4 +- .../62a8c1154d3ae11aee80353f.md | 4 +- .../62a8c151b23bf21bc7c4fcba.md | 4 +- .../62a8c173949f851c83c64756.md | 4 +- .../62a8c242b25a531f2909e5bc.md | 4 +- .../62a8c2bbbd8aa82052f47c53.md | 4 +- .../62a8c31ec0ec78216a1c36a0.md | 4 +- .../62a8c370ad8c68227137e0bc.md | 4 +- .../62a8c3ebc6c35e23785e1a19.md | 4 +- .../62a8c41ecaf1bd24536129b8.md | 4 +- .../62a8c465fa7b0c252f4a8f0c.md | 4 +- .../62a8c4db0710f3260f867a92.md | 4 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 4 +- .../62a8c65b75664c28a8e59c16.md | 4 +- .../62a8c6815f5f1a29735efe1b.md | 4 +- .../62a8c7322e42962ad53ad204.md | 4 +- .../62a8c7a59e72c02bb1c717d2.md | 4 +- .../62a8c89e4272512d44fc1c66.md | 4 +- .../62a8c8cee8e5cf2e001789b4.md | 22 +- .../62a8ca22d29fe62f3952bdf5.md | 16 +- .../62a8cb19bd7f8a304e5427a1.md | 6 +- .../62a8cbd1e3595431d5a2b3f1.md | 6 +- .../62a8cce1b0c32c33017cf2e9.md | 12 +- .../62a8ce1dfc990134162b3bd9.md | 14 +- .../62a8ce73d0dce43468f6689c.md | 8 +- .../62a8cf22272d6d35af80d4ac.md | 10 +- .../62a8d0337d7c67377a4a76c6.md | 8 +- .../62a8d08668fa8b38732486e9.md | 8 +- .../62a8d0c4f12c2239b6618582.md | 14 +- .../62a8d0fdf2dad83a92883a80.md | 24 +- .../62a8d143f2a58e3b6d6e9c33.md | 16 +- .../62a8d1c72e8bb13c2074d93c.md | 16 +- .../62a8d2146a3e853d0a6e28ca.md | 12 +- .../62a8d24c97461b3ddb9397c8.md | 10 +- .../62a8d2e2a073be3edb46116f.md | 10 +- .../62a8d31ebbc10e3fe1b28e03.md | 10 +- .../62a8d35660db4040ba292193.md | 10 +- .../62a8d382cd075f4169223e14.md | 14 +- .../62a8d539dc11cb42b5dd7ec8.md | 10 +- .../62a8d61ddfe35744369365b7.md | 14 +- .../62a8d6c7001ebc45350e3d16.md | 10 +- .../62a8d7b8ab568b4649998954.md | 16 +- .../62a8d81f539f004776dd9b1e.md | 10 +- .../62a8dd468debb449b4454086.md | 10 +- .../62a8dd9cdb16324b04cfd958.md | 10 +- .../62a8dfcf7fb1044d2f478fd1.md | 10 +- .../62a8e0d1d0110b4ec421489f.md | 10 +- .../62a8e142f7f0bd4fed898de3.md | 10 +- .../62a8e1dc897df55108bcb5e8.md | 10 +- .../62a8e21398ad61520edb724f.md | 10 +- .../62a8e24c673b075317cc0b09.md | 10 +- .../62a8e271f8e3d1541f9624ad.md | 10 +- .../62a8e35675c18c56354c08cf.md | 10 +- .../62a8e41e2f190c58404dd46e.md | 16 +- .../62a8e45cc600c3591cee671a.md | 12 +- .../62a8e49f4df7af5ae2d7a616.md | 24 +- .../62a8e4dc6a60f85bf256a0cb.md | 22 +- .../62a8ed36d7a7915dfa444ba2.md | 14 +- .../62a8edd05e27cc668051686f.md | 14 +- .../62a8ee154c8946678775c4a4.md | 14 +- .../62a8ee71f018e968a056d369.md | 14 +- .../62a8eec45f77bc69e8775294.md | 14 +- .../62a8eefe2e68b66ac563816b.md | 14 +- .../62a8ef6a52292f6bdca4f6f8.md | 14 +- .../62a8ef8f0c76a46cd221a68c.md | 14 +- .../62a8efb0e3ce826db8daf80f.md | 14 +- .../62a8eff21c0b0f6ebe5b8e38.md | 14 +- .../62a8f06fb318666fef69f91e.md | 14 +- .../62a8f14fe6d1fc72454648c7.md | 14 +- .../62a8f1d5f5ddbf74c07f733b.md | 14 +- .../62a8f20463b324759953edad.md | 20 +- .../62a8f256b813a476cae51f49.md | 16 +- .../62a8f35bde1750791f58773f.md | 16 +- .../62a94114ce0b8918b487390f.md | 16 +- .../62aa1cea594f152ba626b872.md | 16 +- .../62aa1d6736ba262cfa74344b.md | 16 +- .../62aa1d9f535e102e4663e7a6.md | 16 +- .../62aa1e3c7c3d552fb04f0f18.md | 16 +- .../62aa1e8ccd579330e097ce44.md | 16 +- .../62aa1eec891ed731db227a36.md | 16 +- .../62aa1fed3d4e873366ff3131.md | 16 +- .../62aa204c1e1d33348ff09944.md | 20 +- .../62aa20e9cf1be9358f5aceae.md | 20 +- .../62aa2136fc49b836dfedb959.md | 16 +- .../62aa21971e3b743844849985.md | 16 +- .../62aa21ea8d9d9f396b95dd87.md | 16 +- .../62aa226207f33d3ad4c6f546.md | 16 +- .../62aa22aba186563bcbf2c395.md | 22 +- .../62aa234322d4ad3e8bce42cc.md | 18 +- .../62aa2469c77b363fdb4f0e06.md | 18 +- .../62aa252c3b1073415ba2b898.md | 18 +- .../62aa258da314ef42ba0a1858.md | 18 +- .../62aa25fcb5837d43b4d9873d.md | 18 +- .../62aa2626c3c10244b94c787b.md | 14 +- .../62aa264d23cdaa45a20efada.md | 18 +- .../62aa26cca3cd3d46c431e73b.md | 18 +- .../62aa27227399d647e1c37a3c.md | 18 +- .../62aa27560def7048d7b4a095.md | 18 +- .../62aa27c40ca6f04ab8be5fac.md | 18 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 18 +- .../62aa2943669c9d5026af6985.md | 18 +- .../62aa2999ec27ec516655eba6.md | 18 +- .../62aa29d8f8f88152c91350ca.md | 18 +- .../62aa2aec2f09d454253aad6c.md | 18 +- .../62aa2ba9cd881355a6f0a5a8.md | 18 +- .../62b46e3a8d4be31be5af793d.md | 4 +- .../62ba17beef16c563069a65d8.md | 16 +- .../62fc1ee0c5a89717d4785729.md | 4 +- .../62fc20387ef88d1d1998aac5.md | 4 +- .../62fc211760bfc220f4734800.md | 4 +- .../6577ea4f23e3ba1217007bc7.md | 4 +- .../65b2f6acce65b7a69751a090.md | 16 +- .../660880e67dfed9eb6adb7178.md | 4 +- .../66088382bd1422ed8b5309c3.md | 4 +- .../66088621742011f008175e5e.md | 6 +- .../6608b7985f4ba5127cbc401b.md | 4 +- .../6608b8713915f21398ff32e1.md | 4 +- .../6608bee87c43ca194effebdf.md | 4 +- .../662fbead61552e06d30fc048.md | 10 +- .../662fc372da60030ae25b194e.md | 10 +- .../63f03686c5ea863533ec71f4.md | 2 +- .../653283d07b8f9d294aafa83b.md | 2 +- .../65362bfd67d61d517deef191.md | 2 +- .../653635c731206b718659d3d5.md | 2 +- .../653639d63a45a077333312c8.md | 2 +- .../653641509b6e7681a9333245.md | 2 +- .../65364566e84e378837fbaf2a.md | 2 +- .../653fb19b515fde28243f727a.md | 2 +- .../65420b821b14f25a6b35c3b3.md | 2 +- .../65420dcfc60580678dad7a92.md | 2 +- .../654210a9eda99477f5697a94.md | 2 +- .../654212b82fb5cf872f77148f.md | 2 +- .../654213f2fad2d48f74d6c239.md | 2 +- .../654215fe7b4a899ddceb3b60.md | 4 +- .../654218753c255fabb81f57ca.md | 2 +- .../65422ba173a18b1bedef1bb6.md | 2 +- .../6552127b2576c2fbc5ecc2ea.md | 2 +- .../65521badc7b7470edf952372.md | 2 +- .../65521ec3bb117c195c4f6cb5.md | 2 +- .../655220a3fa5c3c200bc8e938.md | 2 +- .../6552303a9a78704f8ff072e9.md | 2 +- .../655235c2e607297f00316650.md | 2 +- .../6552385244ccf89b77d6b332.md | 2 +- .../655243068222c2c1166b90b0.md | 2 +- .../655476e1ff522252fdcce5e4.md | 2 +- .../655479aa3e1e0360ae38b7a6.md | 2 +- .../65547ee197840478a1b95f4b.md | 2 +- .../6554815fe2472f8bfdab7642.md | 2 +- .../655482742cc5499726e3f347.md | 2 +- .../655483ebf0096ba02b2c3d4c.md | 2 +- .../655485321913feabbc5f00f8.md | 2 +- .../6554860ea4dfbab2f4786fc8.md | 2 +- .../655487f686aabfc2a10ba887.md | 2 +- .../65548f747a4cdafd186948d1.md | 2 +- .../655490f55c36900779336988.md | 2 +- .../655492e6b90c7a198c587943.md | 2 +- .../655494d5a15d6a2567e1ea60.md | 2 +- .../655495a6bd96e42bc3baa795.md | 2 +- .../6555d17af9ff06a14d399f6d.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555d729c9bfd7c3195f1948.md | 2 +- .../6555d7e384056dc9c581fadf.md | 2 +- .../6555d8faed60b9d3e4a6cefb.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e39a5f4c6f138c7d9405.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../6555e7acdbae972d3e8e0f5b.md | 2 +- .../6555e9197bf1d7416bdd76e0.md | 2 +- .../6555ebf07ec610585a626f72.md | 2 +- .../65571e742fbf4532d8f98e90.md | 2 +- .../655720534347cb3f31cdfb3d.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655727b2e1e49d6adf584442.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../655737cd004591b0271d6826.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../65573d0abe4d38cd6fa13f44.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b49333d9f265bc1512152.md | 2 +- .../655b4bbff1dbf66cb2ed4dac.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 2 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../656472ed8f552d2f2b3f7883.md | 2 +- .../6567055f59d39f07d1c542dc.md | 2 +- .../65671421254eeb489875cdd8.md | 2 +- .../65672136535209761a5cf02b.md | 2 +- .../65672adafbaa37a6cef886f7.md | 2 +- .../657b2b0b6a48071a6db28e7a.md | 2 +- .../659b0093d7db5a1a1122b7bd.md | 2 +- .../65a608b7e7c75a04ccf0c23c.md | 2 +- .../65a6098a3405f206312e28f5.md | 2 +- .../65a609f6e23f3b06c608fb57.md | 2 +- .../65a60aa3efd8fa079c2d1537.md | 2 +- .../65a60b0b8b4f96085ac23463.md | 2 +- .../65c64fe6c770a22db893e931.md | 2 +- .../65c6532520cf4f323329b2c6.md | 2 +- .../65cf1f2cd796c06057bf3f3c.md | 2 +- .../660ae3eeef9ad289bece426b.md | 2 +- .../660ae8ad1475698da3c3c37d.md | 2 +- .../660aea8782242e8f4bcc42d8.md | 2 +- .../660aef1d5bd6c092f1931830.md | 2 +- .../660af2b86c0fca95f7570fc5.md | 2 +- .../660af462d18730978fdf5c50.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf461011fca327d3b60fa8.md | 2 +- .../63bf47fd40599f29827f484d.md | 2 +- .../63bf492b6dfb292a79f0e675.md | 2 +- .../63bf4bfe9de3852be51c8f86.md | 2 +- .../63bf4d351e06432ce9bf3627.md | 2 +- .../63bf511b85b6082e54dc1573.md | 2 +- .../63bf5230bccd1c2f5c13e1ce.md | 8 +- .../63bf598a4c807930a13a1a27.md | 2 +- .../63bf5a518d54f63181ab639a.md | 2 +- .../63bf5a92fd148d3264d5322b.md | 2 +- .../63bf5adfe2981b332eb007b6.md | 2 +- .../63bf5bcfebff0734593fad19.md | 2 +- .../63bf5c438f523a359769106c.md | 2 +- .../63bf5cf03b50bf36cfbe94ea.md | 10 +- .../63c1dfbd56c71e278800010c.md | 2 +- .../63c1e0af28078f2dfad9eb3e.md | 2 +- .../63c1e1965a898d302e0af4e3.md | 2 +- .../63c1e5b4b3c8a031def3bd65.md | 2 +- .../63c1e704ee12703347625900.md | 2 +- .../63c2164c0df38a382062c4af.md | 2 +- .../63c216da562fbb3957b9cb2c.md | 2 +- .../63c2171c1e5b6e3aa51768d0.md | 2 +- .../63c21774193de43bbc6a769f.md | 2 +- .../63c217ccd939053ce4fa16d6.md | 2 +- .../63c21839f56eaf3ef4e027c4.md | 2 +- .../63c2187f55eb0f400269568f.md | 2 +- .../63c218c028c56a411b2a379a.md | 2 +- .../63c2194dce265f429300c8b1.md | 2 +- .../63c21c17fa8fd6447ff0389d.md | 2 +- .../63c21cd2c34541469f5700a9.md | 2 +- .../63c21d4f48267a47c2946788.md | 2 +- .../63c21dea919c8e4adb0df8e8.md | 2 +- .../63c8ab51214c8c1f1b9a49f7.md | 2 +- .../63c8ad0cd8f1e5201c4ef2e4.md | 2 +- .../63c8b0187cceff21c8389543.md | 2 +- .../63c8be904ffff922f3c6f8d0.md | 2 +- .../63c8c00bfb671b23f9de4159.md | 2 +- .../63c8c15fd337ad24b9b68049.md | 2 +- .../63c9bc53735149084390e5d0.md | 2 +- .../63c9bcc26219e7090da0f549.md | 2 +- .../63c9bce376ca4f09c15a3768.md | 2 +- .../63c9bdd916e0c10af01ed8d7.md | 2 +- .../63c9be334f4a050c0b94bc93.md | 2 +- .../63c9bef7fec05c0d38853828.md | 2 +- .../63c9bf80558d780e848b2987.md | 2 +- .../63c9c09a7daa4f0ff92c4023.md | 2 +- .../63c9c0d0857f0a10a57af936.md | 2 +- .../63c9c11a0a090311dff55564.md | 2 +- .../63c9c16dd75dd212dc12363c.md | 2 +- .../63c9c1ef134f3513e751c975.md | 2 +- .../63c9e3a83bb3e61a80eea564.md | 2 +- .../63c9e45519caf31b987fbb5f.md | 2 +- .../63c9e4d2ff41811dd640504f.md | 2 +- .../63c9e51b3a007a1eba1cd0f6.md | 2 +- .../63c9e55b4b06c11fff555c64.md | 2 +- .../63c9e5eea8261d22856ead1c.md | 2 +- .../63c9e63bb1e32d23b6adbe44.md | 2 +- .../63c9e6b7c0303524af2d0bc2.md | 2 +- .../63c9e769df38c92635c158ba.md | 2 +- .../63c9e7d5b21eee2776ecc226.md | 2 +- .../63c9e84c9fe8ca28c4101189.md | 2 +- .../63c9e8fe3a6f022a05a04675.md | 2 +- .../63c9e94e9df7d72aed1c24bd.md | 2 +- .../63c9ea23dbadbf2c2764e3f5.md | 2 +- .../63c9ea9b16430f2d54522464.md | 2 +- .../63c9eb09bcfaa72e3da820a1.md | 2 +- .../63c9eb4a5d68f12f32d9b440.md | 2 +- .../63c9ebb7b12bca3025b0a935.md | 2 +- .../63c9ec044acedf312c4974ff.md | 2 +- .../63c9f24afbc9cf324dcaa9a4.md | 2 +- .../63c9f28bda3e3f336e21b6b4.md | 2 +- .../63c9f2bff625af342023512c.md | 2 +- .../6603ac77cd4899599a98a1fe.md | 2 +- .../6603aeb33cbbbd5bbbc79b2e.md | 2 +- .../6603b0bcba0eb95e5256b1e2.md | 2 +- .../660404511dbf1b90eb23b617.md | 2 +- .../6604080b66ff6e942d8225b1.md | 2 +- .../66040ae710de0e96c26a0201.md | 2 +- .../643498328cb52026123e2b91.md | 2 +- .../643498755d54c6279ba09078.md | 2 +- .../6437124c4c03dd4c8fb35d56.md | 2 +- .../6437133052eaf04d7300e622.md | 2 +- .../643715013330824ecaa70442.md | 2 +- .../64496d1e5af8c0148fbef96d.md | 2 +- .../64496d80bc174a158c973080.md | 2 +- .../64496df724dd3716a71fe971.md | 2 +- .../64496e9c6d7a2e189948e441.md | 2 +- .../6449749d20436c1f1dfadcf2.md | 2 +- .../6449755666005520330cec5b.md | 2 +- .../64497da4062602213ecf32e7.md | 2 +- .../64497de936a2f322327e5c58.md | 2 +- .../64497e0e5e5a2c2329785af4.md | 2 +- .../64497e764135bd24b7960dd3.md | 2 +- .../6449842c6f6c84261075e4c9.md | 2 +- .../64498473a17adc26ef0ecc2d.md | 2 +- .../6449849b78f43527be1e8a98.md | 2 +- .../64498542cab69128ab24e4de.md | 2 +- .../6449860d84c9e22cbd7b497c.md | 2 +- .../6449863f592af72d9be0959e.md | 2 +- .../6449874d5191562eb3313b3f.md | 2 +- .../6449876e7aae0d2f8257a497.md | 2 +- .../64498b085028fc30a58bb6a7.md | 2 +- .../646d0889c6ff4baa46ac1c50.md | 2 +- .../646d09a07241aaab1e777080.md | 2 +- .../646d0a022da7bcabf3e3aca3.md | 2 +- .../646d0d20108440acc95a6b32.md | 2 +- .../646d0db5175974ad8633b71c.md | 2 +- .../646d0e4636e14eae2bb3b992.md | 2 +- .../646d1980018efaaec2b1c28b.md | 2 +- .../646d19fc4705e4af65c3e688.md | 2 +- .../646d1b96dd7ea4b0061458bc.md | 2 +- .../646d1cadf0d96ab0b7e12da4.md | 2 +- .../646d1d67f9261fb15a795588.md | 2 +- .../646d1e531042dfb24da1f032.md | 2 +- .../646d3141790b3cb337dd611a.md | 2 +- .../646d382c4d70ceb3dba1e830.md | 2 +- .../646d386a685620b49db4be76.md | 2 +- .../646d38c326f3c8b54023de38.md | 2 +- .../646d38f906b94cb5fe6ce7de.md | 2 +- .../646d3952f6af37b6a1c241c2.md | 2 +- .../646d39c156fe94b7482c3ab6.md | 2 +- .../646d3b27cd3c56b875256301.md | 2 +- .../646d3bc75fe0c9b972da3323.md | 2 +- .../646d3c146e10b0ba222bb2a7.md | 2 +- .../646d3d037872fbbae0a8ec0e.md | 2 +- .../646d3d65be79c8bb9c7df9ff.md | 2 +- .../646d3d80c3b4aebc4103618e.md | 2 +- .../646d3da8501e15bcd355ba1d.md | 2 +- .../646d3e135ab3abbdbfe5c899.md | 2 +- .../646d3e64b15f92be6e61704e.md | 2 +- .../646d3ee7b17ae3bf48610033.md | 2 +- .../646d3f1fd12f76c02c823bb8.md | 2 +- .../646d3f718b5f8dc102cd528e.md | 2 +- .../646d404259f512c1a9e86ac1.md | 2 +- .../646d40c543943ec250039682.md | 2 +- .../646d40fe4b7b50c30c2b4cd8.md | 2 +- .../646d41e23b583fc3b8cc4579.md | 2 +- .../646d423fade4a9c4636acd13.md | 2 +- .../646d42f58deb2fc52adc6611.md | 2 +- .../646d43587d926bc5b6cb2e50.md | 2 +- .../646d448479c8fdc8dcec868c.md | 2 +- .../646d44da986f2bc9b72f5fe2.md | 2 +- .../646d451c2e44afca71b67818.md | 2 +- .../646d4554721d43cb19a68bc4.md | 2 +- .../646d45b739da5ecbf830c108.md | 2 +- .../646d45ee725632cca2555146.md | 2 +- .../646d4626420eeecd51f241c2.md | 2 +- .../646d467c6994f4ce0dc416a4.md | 2 +- .../646d46c03e7d02cecb30f021.md | 2 +- .../646d4717a689e1cfa232e357.md | 2 +- .../646d4769ba65f1d05ef6b634.md | 2 +- .../646d47c8f58107d10f1e5106.md | 2 +- .../646d4813c17b37d1e261a566.md | 2 +- .../646d486aec20f7d2a581cc36.md | 2 +- .../646d48b936802fd34c3f05af.md | 2 +- .../646d498c8ebc31d3f753b22e.md | 2 +- .../646d49bfff9079d4b38df115.md | 2 +- .../646d4a07a8fb14d55cd70e09.md | 2 +- .../646d4a5b32a1cad6165df286.md | 2 +- .../646d4a8dbc04c6d6bb0001f8.md | 2 +- .../646d4ab9b3b4c5d74fdd2154.md | 2 +- .../646d4b3d80ea98d824c8a4f9.md | 2 +- .../6491d38f5b09a021c4b5d5fe.md | 2 +- .../65ae458e23954c3469e0c209.md | 2 +- .../661f48f412d7631a1d9c30e6.md | 2 +- .../661f49650572031c6ebdb8e3.md | 2 +- .../657e2ecee9f60092c89338d9.md | 2 +- .../657e30e116d50c946b189925.md | 2 +- .../6482b4fef5fd6bcdfddad730.md | 2 +- .../6482bc5d699f0acfc52bdc41.md | 2 +- .../64861a8856e1eaf9e349570e.md | 2 +- .../64861c02ff1ef4fa62a9e132.md | 2 +- .../6486212f80701cfb18052eae.md | 2 +- .../64862530b093dbfbea58f43d.md | 2 +- .../6486282ca3a469fca6ebed27.md | 2 +- .../649a6b393a10a4357087b3f7.md | 2 +- .../649a75a844f2ea3a0060d807.md | 2 +- .../649a80aa4405823b3f81a47f.md | 2 +- .../649a845dccffd93c0d41ad4b.md | 2 +- .../649a88458b4e343fbdffbbc0.md | 2 +- .../64a1d39230e33585f3dd0dae.md | 2 +- .../64a1d86b1294b2869cef1c18.md | 2 +- .../64a1e1b74d2e4e019acb70b8.md | 2 +- .../64a1e54abad976028a8938f1.md | 2 +- .../64a1fdbf48e08b06e8b05870.md | 2 +- .../64a2cadabc8538152c49a7eb.md | 2 +- .../64a2ceb58fe10e15e0dc223f.md | 2 +- .../64a2d19c5029ba166cb912e5.md | 2 +- .../64a2d5f23518e71727cac0db.md | 2 +- .../64a2d86799a58517c29f79a5.md | 2 +- .../64aaf2aff7f1fc7a550f40cb.md | 2 +- .../64aaf83d46b16a7b20a27051.md | 2 +- .../64ab0134716d0a7c8889f167.md | 2 +- .../64ab06a9cc033b7d4a8bad2a.md | 2 +- .../64ab143edad72b7e25b23f8a.md | 2 +- .../64ab178206f3237eafcc0ef4.md | 2 +- .../64acebecb7484c8c6a760534.md | 2 +- .../64aced3e88b0a38cec824dea.md | 2 +- .../64acedb5f59c0c8d43e96aa4.md | 2 +- .../64acf1af380a708ded8761f0.md | 2 +- .../64acf287857bb38e6dd7ca69.md | 2 +- .../64c703f58330b3767399e486.md | 2 +- .../64c705fd8969d677066792b8.md | 2 +- .../64c708fe06b0c3776f90faaf.md | 2 +- .../64c70d3bf7504978368da6ad.md | 2 +- .../64c70f78dbf5667a307a7d90.md | 2 +- .../64c71235eba6c67adaa9a458.md | 2 +- .../64c7135a9d35797b4bfb01b3.md | 2 +- .../64c714ec1b844f7bc0723deb.md | 2 +- .../64c715769bab5f7c14f6cd7b.md | 2 +- .../64c7168cba4a4f7c90c26277.md | 2 +- .../64c7173772c2497ce99b474c.md | 2 +- .../64c7202620a5e17d8a3c777d.md | 2 +- .../64c72e52133d687e8e6a60f6.md | 2 +- .../64c73367cce78a7fd65dd3be.md | 2 +- .../64c734293def73808e609778.md | 2 +- .../64c736a531835181349c27d2.md | 2 +- .../64c73981de025581bddb89eb.md | 2 +- .../64c73df1424422832333a9fa.md | 2 +- .../64c74a226587f502c0525927.md | 2 +- .../64c74a8a4138c6032241d498.md | 2 +- .../64c74c293dd7cf03cbd58194.md | 2 +- .../64c74e0064a9080443af0796.md | 2 +- .../64c750c328e06f0878a9272e.md | 2 +- .../64c7527100b19b09037ce5db.md | 2 +- .../64c7538db3e33d09704ab148.md | 2 +- .../64c754f598ca5409d0a08884.md | 2 +- .../64c755bf0034b20a428a4a1b.md | 2 +- .../64c7561d44e2300a90a38ab6.md | 2 +- .../64c7573fd2265f0b1c77e2ec.md | 2 +- .../64c758ab7352130b775df8c4.md | 2 +- .../64c764dd9071050d0a2c1473.md | 2 +- .../64c9bab6998128282da063f9.md | 2 +- .../64c9db021d4d912906878f3a.md | 2 +- .../64c9dc4bd63a92295347c449.md | 2 +- .../64c9e4cc5f06902dc75dc8f4.md | 2 +- .../64c9e90c433fde2e870285a3.md | 2 +- .../64c9efea385ca536bf467a7c.md | 2 +- .../64c9fa51209ab5395d524cce.md | 2 +- .../64c9fe7b2ffa3539fbf82d32.md | 2 +- .../64cab4d06512c95234256cbb.md | 2 +- .../64caea41a4199e54253c60ca.md | 2 +- .../64caeb134c3cdc5498cd75b9.md | 2 +- .../64caeeae2fa57756035d6012.md | 2 +- .../64caf1be15606d5814c3387b.md | 2 +- .../64caf237baef43587be6d860.md | 2 +- .../64cb24c224ac2c61fa1c70aa.md | 2 +- .../64cb262dd91ecc62998736af.md | 2 +- .../64cb26e84dd0b56313ba0c6e.md | 2 +- .../64cb2a87057eb5655c66d1c2.md | 2 +- .../64cb2da32f8443669fd4e725.md | 2 +- .../64cb2e5bdfb23a67272a07c7.md | 2 +- .../64cb2ff0c31b0f67a6d76a47.md | 2 +- .../64cb30b8e4719a67fe14f364.md | 2 +- .../64cb34c01b3d856a9a59261d.md | 2 +- .../64cb3f62b10c336bada1c70c.md | 2 +- .../64cb472593e3be6d10a7c13b.md | 2 +- .../64cb480723790d6d727b8ef5.md | 2 +- .../64cb48e36c9ad56dd7a523f4.md | 2 +- .../64cb4978631a4f6e3e1b964d.md | 2 +- .../64cb4e676c156f7332f40db7.md | 2 +- .../64cb4ebdc75b3a73a43da5ec.md | 2 +- .../64cb50fd95831a745ea60d13.md | 2 +- .../64cb522509ffb274daf9fd9e.md | 2 +- .../64cb583dadb33a77595797bd.md | 2 +- .../64cb5d1d48532b79b4e7ef6c.md | 2 +- .../6507512fe521de40085b8831.md | 2 +- .../650755908a8071409ab9e09e.md | 2 +- .../650756e20cffbe41305a0dde.md | 2 +- .../650757918a9e97418dc3d71a.md | 2 +- .../65afeb7ab6867b43dacbf32b.md | 2 +- .../65afec8f02423144ef136a94.md | 2 +- .../65b006efc74c675c2bdfccba.md | 2 +- .../65b00a6f1c429c5e9fa50e90.md | 2 +- .../65b2a465d7ca3ab6e902285b.md | 2 +- .../65b2bb4c279af3cd585ba777.md | 2 +- .../660ee6e3a242da6bd579de69.md | 4 +- .../660eebd83100d37862268781.md | 4 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 4 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 4 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 2 +- .../660f3dd626be3a1ffe27e5d1.md | 2 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 6 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 6 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 4 +- .../6610b9f7619764fad5fd516d.md | 4 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../64ec89ee549ecf802de2b3e2.md | 2 +- .../64ec8f717b261e824d82d6a5.md | 2 +- .../64ec9145e424d8835a4e0f28.md | 2 +- .../64ec9282cd547785258cecf2.md | 2 +- .../64ec9343769e8f85c1e17e05.md | 2 +- .../64ec94f0de20c086e09b0fc3.md | 2 +- .../64ec959a76336c8767f5cd4d.md | 2 +- .../64ec96761156a187ed32b274.md | 2 +- .../64ec9b10356c2d8aa05d9ce1.md | 2 +- .../64ec9c55fdeef78bacd2fc3b.md | 2 +- .../64fac365aeb8ad70b69b366f.md | 2 +- .../64fac4d1773e7a719b1254de.md | 2 +- .../64fac6a497811572b338e5e5.md | 2 +- .../64faca774fd9fd74bc084cc9.md | 2 +- .../64facf6180824876f70a2e86.md | 2 +- .../64fad07f43a101779cb8692a.md | 2 +- .../64fad9cd2eeb1e7ca2ca8c8b.md | 2 +- .../64fadae4f2d51b7d5d8b98d8.md | 2 +- .../64fadff23375f27ff06c6d40.md | 2 +- .../64fae068bcdc9c805bd8399e.md | 2 +- .../64faedcd16a1e985c4c2dc94.md | 2 +- .../64faf0418e828c0114a558a7.md | 2 +- .../64faf65b22ad8d07df9be14d.md | 2 +- .../64faf874364ec308f875f636.md | 2 +- .../64fafac95328110a69bcb75f.md | 2 +- .../64fb0fa0968f2b113b2d90e9.md | 2 +- .../64fb1061ca838611ed6a7d6b.md | 2 +- .../64fb1321e189a6136d200f77.md | 2 +- .../64fb1436adef3e145b4c3501.md | 2 +- .../64fb14d890415c14f93069ce.md | 2 +- .../64fb154a7c48cd159924bb18.md | 2 +- .../64fb1c4dc0feb219149a7c7d.md | 2 +- .../64fb285637fa1e1c222033e3.md | 2 +- .../64fb29348a60361ccd45c1e2.md | 2 +- .../64fefebad99209211ec30537.md | 2 +- .../64ff0313700dad264d19dfe4.md | 2 +- .../64ff04cc33779427a6412449.md | 2 +- .../64ff068e0426eb288874ed79.md | 2 +- .../64ff23daf176a92de95f24dc.md | 2 +- .../64ff24b80431f62ec6b93f65.md | 2 +- .../65003986d17d1e1865b269c0.md | 2 +- .../650046832f92c01a35834bca.md | 2 +- .../650048b0764f9c1b798200e2.md | 2 +- .../65004ba581d03d1d5628b41c.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../65099dbd8f137d58e5c0ff16.md | 2 +- .../659ebe52d74b132a1d75c891.md | 388 -------- .../660d86150a52ced178d567f3.md | 2 +- .../660d8ca387f989d6b25a3343.md | 2 +- .../660d8d7bb2424cd7cdf90ec1.md | 2 +- .../660d90b0ec1ef7da914c5e65.md | 2 +- .../660d936a55565add0a27199b.md | 2 +- .../660d9535e86fd2deb351aeb9.md | 2 +- .../660d9cb6cc6415e6ca0509d8.md | 2 +- .../6632420f81f3cc554a5e540b.md | 2 +- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63e02a333354343b595d64ca.md | 2 +- .../63e0334b7a24bd3c96aca4de.md | 2 +- .../63e036373fc9173d284e165a.md | 2 +- .../63e03b86008bbb3e1c3de846.md | 2 +- .../63e042661ad2663f0d468740.md | 2 +- .../63e050bf935ac341b88326d6.md | 2 +- .../63e05557016dfd45ea49152c.md | 2 +- .../63e05c00b615bb46ac87273a.md | 2 +- .../63e060df21bca347b2d2b374.md | 2 +- .../63e062d6090ebb486a4eda3a.md | 2 +- .../63e949b8327aa2aca2ca8eac.md | 2 +- .../63e94dae6dcedbad73f2f6ee.md | 2 +- .../63e954321b0a77ae4f6d9650.md | 2 +- .../63e95a45dce95baf41dd4f78.md | 2 +- .../63e95e39860dc5b01ebe9be0.md | 2 +- .../63e9667c881b61b1e338d276.md | 2 +- .../63e96938d2a347b2734a1587.md | 2 +- .../63e96eb94c97b6b31ee50f63.md | 2 +- .../63e9718d7d490bb3940d5a0a.md | 2 +- .../63e9737f686c76b4078a60f4.md | 2 +- .../63f28972973504e7bb58b0b3.md | 2 +- .../63f28ef082d771e8bf71f94a.md | 2 +- .../63f293c804d6f9e9a83ca4c5.md | 2 +- .../63f29804e3ec00ea6fab1ec4.md | 2 +- .../63f29ce62aea65eb041758c8.md | 2 +- .../63f2a0a860790eebe61bf908.md | 2 +- .../63f2a4a8087e6dec8ec47f16.md | 2 +- .../63f2a5f09a785aed155c0a56.md | 2 +- .../63f2a8e14fb388edd3242527.md | 2 +- .../63f2aa36fcdc63ee4e18fc37.md | 2 +- .../63f2ab4f6c52c5eec6d68de4.md | 2 +- .../641fc88d8fa7127f76e0324f.md | 2 +- .../641fcfd468185384ac218b7d.md | 2 +- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../65389211a8d86bbd876a2a74.md | 2 +- .../65389306578c34be5c93bc35.md | 2 +- .../6538935e2ab721beedb137c4.md | 2 +- .../653898fa7eee37c57b960e35.md | 2 +- .../65389a63d3b1d6c764c0e10e.md | 2 +- .../65389de504d0f2ca10e92a57.md | 2 +- .../65389eff4893facbbe6eae67.md | 2 +- .../6607343c7909e562a2e3d94c.md | 2 +- .../660736bde759eb64c3bd15c3.md | 2 +- .../66074463e8cc156e18142dbe.md | 2 +- .../660746a665a61c7075a0f457.md | 2 +- .../66074af5d2b4f373cb140d6a.md | 2 +- .../663d0ab797cb716189ffcc0a.md | 2 +- .../663d18c574456976d11b6e87.md | 2 +- .../663d2f8056542a8066fd6cc6.md | 2 +- .../663d4008cee64e05dfb08f0d.md | 2 +- .../663d5697d80fef0eea026672.md | 2 +- .../663d5bebe2eef6128a0b1e75.md | 8 +- .../662693f82c91a66be46c881b.md | 2 +- .../6626a060c4006f793e10cb33.md | 2 +- .../6626b4c58c027d86478ff5eb.md | 2 +- .../6626b8dcf5057f896f948440.md | 2 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../651dd5ae6ffb500e3f2ce47c.md | 2 +- .../657b05367b59300bcb5f18ef.md | 10 +- .../657b130a905a6045ebe03214.md | 2 +- .../657b207e8603d076272706b1.md | 2 +- .../657b23ad0df43588a6eadfa4.md | 2 +- .../657b292a911788a7faf67415.md | 2 +- .../657b2e9f139789bdd50116b5.md | 2 +- .../657b3136477b8ac802088c97.md | 4 +- .../657b316b61644cc96b677e61.md | 2 +- .../657b5d1a53973f78997c02f6.md | 4 +- .../657b5d614d85dd79d21670de.md | 4 +- .../657b5dcd5d70d67c43f62d52.md | 2 +- .../657b69e10d6606a0185d4d4f.md | 2 +- .../657b703d0cd20eb51c2fd239.md | 2 +- .../657b72cbdef32ec0b1a24afb.md | 2 +- .../657b73ad321867c36c1c621d.md | 4 +- .../657b7acdc06454fbb0152538.md | 2 +- .../657b7d1aec6d4803cf02e84f.md | 2 +- .../657b8487605c881dc8ebde9e.md | 4 +- .../657b8597aaa5162475812ff8.md | 2 +- .../657b971e15225e53da93afd3.md | 2 +- .../657b97be2621d55d1b8dc9a1.md | 4 +- .../657cb542baf74594933c7ac9.md | 2 +- .../657cb5dd956a8797462da793.md | 2 +- .../657cb68bf15f349a744b5fba.md | 2 +- .../657cb91ed0a08ea3761c7407.md | 4 +- .../657cbc6e9b4676aedfa305bc.md | 4 +- .../657cbccfa92918b1037dbf60.md | 2 +- .../657cc1a2ced22ac3e7d57fd3.md | 2 +- .../657cc2b9cc9e97c7bd862273.md | 2 +- .../657cd2dce697d2feacf7620d.md | 2 +- .../657cdc5a8e30191d1abec8b7.md | 2 +- .../657ce061cda4a42a99c65d89.md | 2 +- .../657ce0bbf16c312c8dcc8dff.md | 2 +- .../657ce1f82fbe552fcba96375.md | 2 +- .../657cea90396c694e4fdcaeba.md | 2 +- .../657cebddc542e05459add214.md | 4 +- .../657cec5d8f35ab56c672b561.md | 2 +- .../657ced2d5ea0ae5baac42551.md | 2 +- .../657ced8b322c055e500c2d23.md | 2 +- .../657cfddfaca4b58b1279aaf9.md | 2 +- .../657cfff65708189adb524933.md | 4 +- .../657dbdae2bd6f60bda3226cc.md | 2 +- .../657dbe6c256e75101aa95abb.md | 4 +- .../657dbeb6e94406122619ecad.md | 2 +- .../657dc02d216cf41afa064333.md | 2 +- .../657dc130b35c3a20c8908eb1.md | 2 +- .../657dc16b741b3a22902989b8.md | 2 +- .../657dc263516a5127ce677b8b.md | 2 +- .../657dc2fb63bc6c2b596dd6e4.md | 4 +- .../657dc3509f7c712df6a1c673.md | 4 +- .../657dc40e8ceee1310ef482d1.md | 2 +- .../657dc50830f9be380105f1ee.md | 2 +- .../657dc5ff02128e3ed5ae3740.md | 2 +- .../657dc65ba83c584136bea3e4.md | 2 +- .../657dc7a30bfd894f0ed12a4f.md | 2 +- .../657dc81ff9e4eb5177179dd0.md | 6 +- .../657dc9004d076d55baf36323.md | 2 +- .../657dc9946a177a5938ad3854.md | 2 +- .../657dc9e7b97f2c5b00f67b2f.md | 2 +- .../657dca3c709bf15dd0572a6b.md | 2 +- .../657dcafa1e1a4a62dc03cb76.md | 4 +- .../657dcd1ade6c116a0bc7c9b2.md | 4 +- .../657dcd54267f5d6bc85bd788.md | 2 +- .../657dcf46fdf3f37766568bed.md | 2 +- .../657dcf9f7d5c747a19a36c9c.md | 2 +- .../657dd09e586b597fe5cd0d3d.md | 2 +- .../657dd4012bce1081c8d8c934.md | 2 +- .../657dd46946896b8d19484e26.md | 2 +- .../657dd5864c6f0e91483cc03b.md | 2 +- .../657ddaaf8d89b4a56e3fdf78.md | 2 +- .../657ddcd61f516cacdc7a04ca.md | 2 +- .../657dde8f76d7b2b577030aff.md | 2 +- .../651dd3e06ffb500e3f2ce478.md | 2 +- .../6543aae6f5f028dba112f277.md | 2 +- .../6543abeff5f028dba112f278.md | 2 +- .../6552939414fdaa21fc734788.md | 2 +- .../6568c68b92a63810a57cffaf.md | 4 +- .../6568c759cb59e810dfaa1506.md | 2 +- .../656a10141825a30eb81ff4db.md | 2 +- .../656a10aaa023200eddd09d88.md | 2 +- .../656a137523a9bc0f9d3bae01.md | 2 +- .../656a2a7b05241026c429e3f0.md | 4 +- .../656a2bfbfc3336274c874bed.md | 2 +- .../656a401d1b00af2e25b0fd8b.md | 4 +- .../656a417f7f9daf2e9aae6831.md | 2 +- .../656a421a905e792eca05d447.md | 2 +- .../656a4ef5de14f8301be5764b.md | 2 +- .../656a4fcaa739b7308ad795bf.md | 2 +- .../656a52680e234b3191131cc5.md | 2 +- .../656a533c5a7e5231e15b93b4.md | 2 +- .../656a549c4d9b91326cfe1863.md | 2 +- .../656a554956201b329a0d182a.md | 4 +- .../656ab31ebccec247fde7cee4.md | 2 +- .../656ab5a3ee689949124d2e39.md | 4 +- .../656ab7e9be47c04a2518dbed.md | 2 +- .../656abd3412f31c4c2483de5c.md | 2 +- .../656cad88af98af049df17177.md | 2 +- .../656cb0b3e4e30f0550131acd.md | 2 +- .../656cb18802ef22057a58db13.md | 2 +- .../656cb2ee9d60f205d362b1de.md | 2 +- .../656cbad538b114095fb14c0e.md | 2 +- .../656cc35036d0a00fe17e7cee.md | 2 +- .../656cc7a3f479f511d56ab246.md | 2 +- .../656cc833fe9c0611feeb5b26.md | 2 +- .../656ccd8bafe46d138451d176.md | 2 +- .../656ccde87f42ec13b19c5dab.md | 2 +- .../656cce4130c4d313e92ed22e.md | 2 +- .../656ccf6255561e1467afd1c6.md | 2 +- .../656ccfb763eddb149831854d.md | 2 +- .../656cd061eb49fb14f672f77f.md | 2 +- .../656cd118ca4f1115500a4bf8.md | 2 +- .../656cd31045ce74162adef6c7.md | 2 +- .../656cd4b014d03a1baf452429.md | 2 +- .../656cd52f0f43551be96b4640.md | 6 +- .../656cd6a37495961c5f242c5d.md | 6 +- .../656cd7da364a181cb1038846.md | 2 +- .../656cd983328ab41d5bd929d0.md | 2 +- .../656cda3cd706aa1daa128704.md | 2 +- .../656d1831a6a2fe0465ea9488.md | 2 +- .../656d1936ab6cfb04e2ca6944.md | 2 +- .../656d1a520285050552702fc1.md | 2 +- .../656d1c98a6bd5505fd346b50.md | 2 +- .../656d23d22a488510bca0e418.md | 2 +- .../656d25e0c5d5aa11ade33754.md | 2 +- .../656d27271410d4125ee2ad5a.md | 2 +- .../656d27a603926f1288bafcc0.md | 2 +- .../656d299e9d0027131875568f.md | 2 +- .../656d2bc10f29b413d1a843d5.md | 2 +- .../656d2c2fedbd5f14055b7e7b.md | 2 +- .../656d2c94279eb6143485eac6.md | 2 +- .../656d2d814b60b6149a03c699.md | 2 +- .../657bcf58b87d01890f9bdc93.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../6606682f3fbb93838673920d.md | 4 +- .../66066c563917c5874b792337.md | 2 +- .../660681a717d84e89da14f6f4.md | 2 +- .../660682b572c0bb8aa3075feb.md | 2 +- .../6606838ecf64478b53a51496.md | 2 +- .../660683e649f8fa8bbd5baac5.md | 2 +- .../66068414094b3a8c10a4770d.md | 2 +- .../6606846eba453e8c7bacb2f7.md | 2 +- .../660684bfc24bf48cfaaf9cfa.md | 2 +- .../660686845b5e788def3527ca.md | 2 +- .../66068a6d0bb2aa90f0d93979.md | 4 +- .../66068ad667567091500128c5.md | 2 +- .../66068b650b681c91de9e19a0.md | 2 +- .../66068bf9c9046292705b856d.md | 2 +- .../66068c5cfc7a4992f2574ab2.md | 2 +- .../66068d4033a07d9393291ef0.md | 2 +- .../66068f5b2b7dda9450a7cc2c.md | 2 +- .../66068fc7aa2fe094c5cb84bd.md | 2 +- .../6606906b3f31fc953f1ee3b6.md | 2 +- .../660694cf7803c598ce999171.md | 4 +- .../6606952c28640e9941c8fa29.md | 2 +- .../660695c672854899d6862834.md | 2 +- .../660696292c16659a5e9ccf81.md | 2 +- .../660696cce3e4e79af4612466.md | 2 +- .../66069719acca7d9b59499ce9.md | 2 +- .../6606977e8f0b509bdac39012.md | 2 +- .../660697f307c6559c60e976f7.md | 2 +- .../6606989c34f0be9d141130b1.md | 2 +- .../dialogue-placeholder.md | 15 - .../655c0feadb1dd77f6cda623f.md | 4 +- .../657b12e7c306334b7c320221.md | 2 +- .../657b133afcef714e542b557a.md | 2 +- .../657b135e9029fb4f8141e40c.md | 2 +- .../657b145976723b56a97b8dda.md | 2 +- .../657b153ac677705c7059530d.md | 2 +- .../657b1985ae17886b05b382b1.md | 2 +- .../657b19bf7b32af6caf763ef7.md | 2 +- .../657b1a03df3ec46eca276046.md | 2 +- .../657b1a27dc6daf6ffd52ff1f.md | 2 +- .../657b1a637e4dc571f8f4d3d7.md | 2 +- .../657b1a9581015573806e1e20.md | 2 +- .../657b1cc072206e7ac3db88b8.md | 2 +- .../657b1d4ec0e2587e8bcc95f7.md | 4 +- .../657b1dfec76149836ea5c7d0.md | 4 +- .../657b1e2fad2ffe84ab420a56.md | 4 +- .../657b1e66159fec86336a737b.md | 2 +- .../657b1e9a62603587747f7f45.md | 2 +- .../657b1ee1de7216896b5b4361.md | 105 --- .../657b1f0585d48f8ac0b19654.md | 2 +- .../657b1f598f63008c8bdb20b8.md | 2 +- .../657b1f981cd42e8dc3b282d9.md | 2 +- .../657b1fe950c0df90346e5d12.md | 2 +- .../657b201372864e91d4f5bb53.md | 2 +- .../657b20338e0802931673c1e1.md | 4 +- .../657b20985d315095e5c3851d.md | 2 +- .../657b21e28a01039cb27b4f13.md | 2 +- .../657b221b2ab0ac9e18a173ef.md | 2 +- .../657b223e41ce6b9f9a01d214.md | 2 +- .../657b227f7ad32ea17e2cdf28.md | 8 +- .../657b2310b8cd52a4f15c1818.md | 2 +- .../657b2340be1593a6517fe77b.md | 2 +- .../657b236aa1eb9fa7b209aa03.md | 2 +- .../657b23a413d28da927e087ca.md | 2 +- .../657b23bc0e32f9aa9c62eb82.md | 2 +- .../657b23f03b449aac2c517089.md | 2 +- .../657b242d06512dadaea55056.md | 2 +- .../657b24542024c8af092cd6c4.md | 2 +- .../657b24774d8cdab052ffe2a6.md | 2 +- .../657b24a500800cb1c6945da9.md | 2 +- .../657b2be1b19500c63fc1a467.md | 2 +- .../657b2c040bb5f6c77fa5df80.md | 4 +- .../657b2d618b8851cc5baf9490.md | 2 +- .../657b2d9cb974dace59024964.md | 2 +- .../657b2dd7745fdcd03e5160f4.md | 4 +- .../657b2e0666d4a9d1b851f90e.md | 2 +- .../657b2ec6c054efd71e503a27.md | 2 +- .../657b2eeb31e435d89ecce6f3.md | 2 +- .../657b2f0b3bcfe7d9f4151854.md | 2 +- .../657b2f3bf7a2cbdb58d959d5.md | 2 +- .../657b2f6cb66826dcbac08094.md | 2 +- .../657b2fa89ddc20de629ca21f.md | 2 +- .../657b2fc9c0f96bdfddfce4d9.md | 2 +- .../657b2fea728c2be14a8a98c4.md | 2 +- .../657b3026ff79fbe2dda6cb39.md | 2 +- .../657b306fe94f29e4b4aa9105.md | 2 +- .../657b30ac03b523e6640deaf1.md | 4 +- .../657b30e1b9f035e7e656fd01.md | 2 +- .../657b315533e4edeba65111b8.md | 2 +- .../657b46c9be150f577f5a1086.md | 4 +- .../65f22f7d84784d8bd129c9a4.md | 2 +- .../65f230854698ec8c68b67fa4.md | 2 +- .../65f310fc37e701bfa451be47.md | 2 +- .../65f3146b4f4fb2c1f95c7335.md | 4 +- .../65f31898ad2ed9c3b1a4c9b3.md | 2 +- .../65f3212e767d81dbcfbeb0cc.md | 2 +- .../65f3234e85f828dd1f45d384.md | 2 +- .../65f3641948909aecf182befe.md | 2 +- .../65f365351cf89fedddcc281e.md | 2 +- .../65f365bc3c1491ee60db85a8.md | 2 +- .../65f39df8d18f4814c75d3fba.md | 2 +- .../65f39f5bc6d49d15d7ae3d73.md | 2 +- .../65f3a19e8b77c4170ed0704d.md | 2 +- .../65f3a5111de04c216a38d998.md | 2 +- .../65f3a5733a199c21ca589173.md | 2 +- .../65f3a66869afaa22af33a9a3.md | 2 +- .../65f3a7087f990a233ebb16ba.md | 2 +- .../65f422e03c1be26ee37dbcf1.md | 4 +- .../65f424048ab85171c45e9a08.md | 2 +- .../65f425b9d9686e76a354a7ee.md | 2 +- .../65f4264c34d9b678ecd79ad3.md | 2 +- .../65f4271a0a61e57af14a9b35.md | 2 +- .../65f42789b0fe157c08cf04eb.md | 2 +- .../65f434b6c6a3ba9743d08e22.md | 2 +- .../65f435edbd8f519aba51cc93.md | 2 +- .../65f437964aed009f178dd167.md | 2 +- .../65f4386ef80894a17d6b1f3d.md | 2 +- .../65f439533bb1c4a3ab360b62.md | 2 +- .../65f439b8a46608a46ba94c73.md | 2 +- .../65f43a3a8b2c8ba627c31e46.md | 2 +- .../65f43aa270f998a70375bb23.md | 2 +- .../65f43b8a961e01a96a940470.md | 2 +- .../65f43c96b08a08ac434de6cb.md | 2 +- .../65f50a13853f93ef6c7337c1.md | 4 +- .../65f510b35d792af24e985351.md | 2 +- .../65f511638aa1de0b9d53963e.md | 2 +- .../65f52ee449926c59b5c3a407.md | 2 +- .../65f52f215010605aa4da8804.md | 2 +- .../65f52f761f23715bce60f9ce.md | 2 +- .../65f52fb434a8875cb666ede5.md | 4 +- .../65f53033b856ff5e687644e4.md | 2 +- .../65f530793181a05f4e44a36a.md | 2 +- .../65f569d173ab3d5100c42fd0.md | 2 +- .../65f56b281bb51c5493d3e598.md | 2 +- .../65f56b6445b35b558688bc4d.md | 2 +- .../65f56e358123475af6d0f245.md | 2 +- .../65f5703b434254615ec3b886.md | 2 +- .../65f587dd775b4e74643cf3db.md | 4 +- .../65f5884cd3c21a9bd49f4b00.md | 2 +- .../65f58a1bc78dd4a0a22a8168.md | 2 +- .../65f58b427db077a36de24777.md | 2 +- .../65f58d630872fea94e0f91f5.md | 2 +- .../65f592180269c1b38c771164.md | 2 +- .../65f5928f3ee01db4e8b9d7fe.md | 2 +- .../65f5936de4e017b74ea663db.md | 2 +- .../65f59409f39a43b8d90b53f7.md | 2 +- .../65f594d096c1aebb60e5194d.md | 2 +- .../65f598d3a104b7c50aea53ab.md | 2 +- .../65f6f5d9324c65ef3adab297.md | 2 +- .../65f6f6f53aaa73f21560a9cc.md | 2 +- .../65f6f7d103c247f4d7e10b34.md | 4 +- .../65f6f9e9cfbda7f9c04e8af7.md | 2 +- .../65f6fb76ea5932fe4ba266c6.md | 2 +- .../65f6fc00be7facffe0898c6d.md | 2 +- .../dialogue-placeholder.md | 15 - .../655c114a439cc488b79fe60f.md | 10 +- .../6620024f9abdcba3f531a4ed.md | 2 +- .../66200544eb8080a7cffe98cd.md | 2 +- .../662006b0cb4ee9a8a0e3b9bc.md | 2 +- .../66200a69671a05aa6bcd669e.md | 2 +- .../6620102deeab45aeeffa84ac.md | 2 +- .../662016beb9bb69b2bd4f5d2a.md | 2 +- .../6620187263f472b3b2d0c638.md | 2 +- .../6626dd1f251b2a43ad18b3bb.md | 4 +- .../6633e43c32afebfaef45da26.md | 2 +- .../6636759d3068bf2dd73272f2.md | 2 +- .../663677ae4cd78f2e87d34cac.md | 2 +- .../66367be03c46fd32ebb2d7a5.md | 2 +- .../66367e01e3c7bb33ca28dcff.md | 2 +- .../663681f2b524fe34dca85721.md | 2 +- .../663683bee8bb3c35a05ba69a.md | 2 +- .../663685882305b736cb133f2b.md | 2 +- .../663688f21e5cce3a30161e12.md | 2 +- .../66368c556493fd3fd21f446d.md | 4 +- .../6636cb4a5a281173c4ac8c08.md | 2 +- .../6636ce8dd8527976bcc512a5.md | 2 +- .../6636d1246df2f077a703512c.md | 2 +- .../6636d20a1479ea7853331bc6.md | 2 +- .../6636d3e08afa737905037258.md | 2 +- .../6636e06ef062127d6e45d136.md | 2 +- .../663a3f4bd1ed1ba8f4552212.md | 2 +- .../663a4113812035a9e55aaf29.md | 2 +- .../663a47b234aefeabacb3cf75.md | 2 +- .../663a4d6ec33accaf2ec7be49.md | 2 +- .../663a4e8d22e594affc57ed82.md | 2 +- .../663a4fa7a15067b0c128cb01.md | 2 +- .../663a5b36b3cfadb39db070a2.md | 2 +- .../663a5bde4b0ae5b4421b4964.md | 2 +- .../663a62b17fc3bbb5f60b3d32.md | 2 +- .../663a6406c05b04b6affb427a.md | 2 +- .../663b704b213885462be6020e.md | 2 +- .../663b73051a79cb48e8575c9c.md | 2 +- .../663b9a1f2d5bed4fa98759bb.md | 4 +- .../663bce49cc4c88ac83a3d618.md | 2 +- .../663bd0951a16faada79364bd.md | 2 +- .../663bd4807a9e2faee277fe71.md | 2 +- .../663bd7b5e73f82b044a7ebab.md | 2 +- .../663c1e666a0636bad7df73fc.md | 2 +- .../663c215247722dbc339af6a3.md | 2 +- .../663c28fb560322fb7f096297.md | 2 +- .../663c88890037230b817b9fef.md | 2 +- .../663c89e095962e0cc15c6553.md | 2 +- .../663c8dd09e3f71105de1ca9c.md | 2 +- .../663c8fc74ba87a11b0c1f642.md | 2 +- .../663c90e831be4c127bb11d35.md | 2 +- .../663c927eace0de1347294f6e.md | 2 +- .../663c9a6ddd82d94fbe28bb08.md | 4 +- .../663ccbc479ca2261259f46bc.md | 2 +- .../663cccdee312b962235e81d1.md | 2 +- .../663cce39c325416308bf1cc6.md | 2 +- .../663cd87f741bbf69f5f3b070.md | 2 +- .../663cdd506fb3896b73b1cd13.md | 2 +- .../663cffeb24e5c975dfa41e46.md | 2 +- .../663d02da85fab2771f93d4f2.md | 2 +- .../663d0c3d407cb479e138ba33.md | 2 +- .../663d115d93f1107c06ffa065.md | 2 +- .../663d136b07dbdd7cebf17907.md | 2 +- .../663d6a2db05996853d03529c.md | 2 +- .../663d6d929fe885871065c758.md | 2 +- .../663d6ec0d26560880593fbc2.md | 2 +- .../663d7154bd39b3894c29ddc0.md | 2 +- .../663d74ac95bdc08a3cfce6f5.md | 2 +- .../663d762ab138308b52969b04.md | 2 +- .../663d77a4930d448c314c0739.md | 2 +- .../663e822e5223e819f2eb118d.md | 2 +- .../664142b603be4d4521520f50.md | 2 +- .../664146aa13fd6746cd12f123.md | 2 +- .../66414800bb3a0d47e9962cec.md | 2 +- .../6641495568b04c48f699b7f9.md | 2 +- .../66414b6b60f69749ebd1dda9.md | 2 +- .../66414c799e5c1f4ac17bc54d.md | 2 +- .../664150b24f82ec4dc8d4f077.md | 4 +- .../664154f44e837f509dbea6d4.md | 2 +- .../6641570410a46551973bb25c.md | 2 +- .../664159dd319cc352e511b057.md | 2 +- .../66415d2fc70cf753ed0723a4.md | 2 +- .../66415e9aa33e7054cc3da761.md | 2 +- .../664274a516894a70a9111cb6.md | 2 +- .../6642914bd5def3734c59b763.md | 2 +- .../664292f34cfe2c744598162c.md | 2 +- .../66429658abee9b75dea25871.md | 2 +- .../664298c6fd5b8d77b7f2d6fb.md | 2 +- .../664299c450949978bda86771.md | 2 +- .../66429a94355a0179708be94f.md | 2 +- .../66429c74fa3c997a4ff881e8.md | 2 +- .../66429ebe414f867b59b7843c.md | 2 +- .../dialogue-placeholder.md | 15 - .../655b5899f2ef74716d069180.md | 2 +- .../655b6522da78357de8428a19.md | 4 +- .../655b69293e6e9480ed5f6624.md | 2 +- .../655bd1b0faed39415ed2760f.md | 2 +- .../655bd2f3caad89436a3dcc04.md | 2 +- .../655bd57d0e13e146b2404569.md | 2 +- .../655bdc7e9c4116509df13f34.md | 2 +- .../655c9a549835a8601764bd0b.md | 4 +- .../655c9d9470acf0643482b95b.md | 2 +- .../655c9e73e89d886538976452.md | 2 +- .../655c9ee249f7ef65f6d2dd36.md | 2 +- .../655ca014b022ff6692049b91.md | 2 +- .../655ca0a6639d6b67683ebbcd.md | 2 +- .../656a2fa76e9c4636f6ac7a49.md | 2 +- .../656a444cef055b4342f1f323.md | 2 +- .../656a45d4f36ea1448aa359d2.md | 2 +- .../656a46e84a0ad845901ea907.md | 2 +- .../656a47c9473b0f46463f7d55.md | 2 +- .../656a494313c73747b15a02c0.md | 2 +- .../656a49a16377b8485270dd2d.md | 2 +- .../656a4a4225a07e491ca4f31e.md | 2 +- .../656a4a7596c46e495c64a7ec.md | 2 +- .../656a4b4891e9e54a34dc4dcf.md | 2 +- .../656a4c92a476854b89f98ffd.md | 2 +- .../656a4e001d2b804cdea7000a.md | 2 +- .../656a4e8a59ef3c4d8dfc2ad9.md | 2 +- .../655c111ce03db7881e612a27.md | 6 +- .../65fdc24bcb89e8162b96d954.md | 4 +- .../65fdc3c2cf0b9f186b30c7d4.md | 2 +- .../65fdce67e652825776635f7e.md | 4 +- .../65fdcfcd986a305a20de5e57.md | 4 +- .../65fdd18dada8515bcb983337.md | 4 +- .../65fe10ef733aebd257f0677d.md | 2 +- .../65fe1441bf249ff3ee517b63.md | 2 +- .../65ff086669d84512c7d132f1.md | 2 +- .../6617e123a11505168aa02850.md | 2 +- .../6617e5067ae22739491c8333.md | 2 +- .../6617e75a204e044552675f58.md | 2 +- .../6617f4d790c1b470c3835818.md | 2 +- .../6617f4e86152be717a0d3569.md | 2 +- .../6617f500f6a99d72213a5c92.md | 2 +- .../6617f517c76ecc72b9e6260b.md | 2 +- .../6617f51ef25faa7314b76691.md | 2 +- .../6617f532491c4f7393c859a7.md | 2 +- .../6617f539e6a21d73f1fdff0b.md | 2 +- .../6617f546c322867470cb0d02.md | 2 +- .../6617f552ea245c74ec9ba31c.md | 2 +- .../6617f560bb343c757c0d85fb.md | 2 +- .../661811bce448257e10e8e1e9.md | 2 +- .../6618129f75df1d7f0af1c3c0.md | 2 +- .../6618506a28b7340074a7512a.md | 2 +- .../661918b4f8dc067669326ac6.md | 2 +- .../661918bb4626e7770c416e91.md | 4 +- .../661918cca4435877962d595a.md | 2 +- .../661918e3626bbf77fefcffcf.md | 2 +- .../661918e976fea8785956cd12.md | 2 +- .../661918fafa78d478d0e9dc87.md | 2 +- .../661918ff8203057931fb6412.md | 2 +- .../66191905e86bc9798f6b903a.md | 2 +- .../66191916ab984979f9a1ae9d.md | 2 +- .../6619191be66af37a5152b69b.md | 2 +- .../66191920b7e6dc7aacd28e07.md | 2 +- .../6619192ad58dc37b221da83c.md | 2 +- .../6619192e29a7f77b7a73d556.md | 2 +- .../66191932f2fa967bbe2f5ac3.md | 2 +- .../661920391cc3297ee7350b33.md | 2 +- .../66192c57ba758e85c4f2d766.md | 2 +- .../661934977df94b891d403ca9.md | 2 +- .../6619364db35ae78a30a4a48b.md | 2 +- .../661939c3f5ce238bfafba2b4.md | 2 +- .../66193b1deee8db8cfe3bc5c1.md | 2 +- .../66195ca035cf05015d8ab62f.md | 2 +- .../66195f137aa45a02467f9da6.md | 2 +- .../661960a9ed46f9037e252329.md | 2 +- .../661962ea6cd127049ca20b86.md | 2 +- .../661965b181f27d0595a0e67a.md | 2 +- .../661967b58a6d41069b47f602.md | 2 +- .../6619694e433188077c71d7ce.md | 2 +- .../66199df94bdd5c4de6c6fd00.md | 2 +- .../6619a04a1764834f38e43c85.md | 2 +- .../6619a3859a7988504633e9b0.md | 2 +- .../6619b420967139534c777c95.md | 2 +- .../6619c19ff141525653592e28.md | 2 +- .../6619e52962779d5b224e1f90.md | 2 +- .../6619e90b0cf1085c4e4b66bc.md | 2 +- .../6619ec6c2310ea5f3eea6f4a.md | 2 +- .../6619eea6ff1e07606fb64c13.md | 2 +- .../6619f1096f23a0619be8795c.md | 2 +- .../6619f35ae8ccb362d4d2d485.md | 2 +- .../661ae3524b312bc38efcd2c6.md | 2 +- .../661ae52c7bcb38c507d2b54a.md | 2 +- .../661ae82d5c4b5dc68e84f409.md | 2 +- .../661ae8e967096cc75830f5b1.md | 2 +- .../661aeb62c0cf70c99147fbe9.md | 2 +- .../661aedc854df65ca707fab88.md | 2 +- .../661aeec49a6635cb37599db1.md | 2 +- .../661bd3fc29debe22a71eedb5.md | 2 +- .../661bd56a0154b323bd171a78.md | 2 +- .../661bd63b63586e25c1863cfd.md | 2 +- .../661bd79d5c288226d64bf03c.md | 2 +- .../661bd8ff4ef42827cd22b46f.md | 2 +- .../661bdbcf1d85c329ce8ef7b1.md | 2 +- .../661bdcc98f5d9b2ab8d2ec69.md | 2 +- .../661bddbdbbc09e2b8fac0801.md | 4 +- .../661bdee600dd352c60d0143e.md | 2 +- .../661be07313e6ef2d509c3f52.md | 2 +- .../661eb97a2eb89a1ecd9a507a.md | 2 +- .../661ebaf8b803451ff4b50a69.md | 2 +- .../661ebcd0e68e8820d99577c5.md | 2 +- .../661ebf11bfc6a72252a17fd6.md | 2 +- .../661ec00f710b5c232f2ac3d6.md | 2 +- .../661ec0de154fc223f87a3e44.md | 2 +- .../661ec1f0f4216124b5e450dd.md | 2 +- .../661ec3695be80025c0dcd556.md | 2 +- .../661ec4ab724bde26bf656574.md | 2 +- .../661ec6f5966e9027ab9756dc.md | 2 +- .../661ec8fa433f6e28aa69812c.md | 2 +- .../661ec9b63618da29bcfe55a5.md | 2 +- .../661ed01f09114567cc8fa939.md | 2 +- .../661ed71bed334e6bac73cac5.md | 2 +- .../661edda6df434c6f2161bea5.md | 2 +- .../661edfb33a4dc570a763a05a.md | 2 +- .../661ee1436ecb9271c66be82c.md | 2 +- .../661ee36af2d2c772f247f6b6.md | 2 +- .../661ee552f40b9874237df84b.md | 2 +- .../661ee8082f62ac75392224eb.md | 2 +- .../661ee943945b22763d8ef29a.md | 2 +- .../661eea69ca8a5177320d5e90.md | 2 +- .../661eec2eeb773977fecc123d.md | 2 +- .../661eed09f4b5ed78d2d12e59.md | 2 +- .../661eedfdd116c27b62029999.md | 2 +- .../661eeede39f9547c34267bcc.md | 2 +- .../661eefbfc65d087cf3566591.md | 2 +- .../661ef077d0f4037daaae8a88.md | 2 +- .../661ef18cf60dc87ebdaf405d.md | 2 +- .../661ef27056f2c37f93141988.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 8 +- .../65b0dde5120c33f904f47a62.md | 2 +- .../65b22b3556d52217d9595372.md | 2 +- .../65b22c705b53e41be902b63b.md | 2 +- .../65b22d1aeb5ecf1d590d30bf.md | 2 +- .../65b22e5388370c209a6b0b73.md | 2 +- .../65b22f68d1e84923d3cf1e82.md | 2 +- .../65b2301790bb3c256a5787a3.md | 2 +- .../65b2315a2cce3926f4719551.md | 4 +- .../65b25734252dad35f947f189.md | 2 +- .../65b258729e44fc38227665a0.md | 2 +- .../65b25a0c0e8c603c6576fe81.md | 2 +- .../65b25ab9be0c0d3ec4752839.md | 4 +- .../65b25b541262654062a21e74.md | 2 +- .../65b25bcc98b00d41d06d2a2b.md | 2 +- .../65b25c9be41791441e86e045.md | 2 +- .../65b25eacb57dd5493ebaf184.md | 2 +- .../65b25f2c3284994aa6632194.md | 4 +- .../65b26099dcd86f4e06d0fc21.md | 2 +- .../65b261dae662a3512ed47826.md | 2 +- .../65b622c659539b5863124b5a.md | 2 +- .../65b623813c9f7d5b26b3437f.md | 2 +- .../65b625b0ce7ac75e1115c8cb.md | 2 +- .../65b6265db84a9d61cbc7a109.md | 2 +- .../65b629dbf8298669fb4c1572.md | 2 +- .../65b62b2ca1c4a46c49ab0812.md | 2 +- .../65b655b819433f7c3e9df224.md | 2 +- .../65b6569bfdca437e79a45159.md | 2 +- .../65b6575614ff477fd47746f4.md | 2 +- .../65b657fea6ef4e81eb9a10fd.md | 2 +- .../65b6586c618400831eff6d17.md | 2 +- .../65b78bde6c6910b32eef74ba.md | 2 +- .../65b78da7683e2cb7061d0021.md | 2 +- .../65d5cebba7a44042a1815053.md | 6 +- .../65d5d17a45be4e4d56be704a.md | 2 +- .../65d5d1bdbd0a7f4e3edb6c8e.md | 2 +- .../65d5fb1e575bfe649f5cea4b.md | 2 +- .../65d5feaac55f2d673480abe1.md | 2 +- .../65d60150d4ac7c73895342cc.md | 2 +- .../65d60402f5661e79dfddab63.md | 2 +- .../65d60609e931277ebddf1dd8.md | 2 +- .../65d6099b91bfe381c68a12f8.md | 2 +- .../65d6b7cfc3544c15a83b2008.md | 2 +- .../65d6bc21bbb3fb20d47cd7ed.md | 2 +- .../65d6bd19de6bad235879c032.md | 2 +- .../65d6bfc0ef75202990f3c838.md | 2 +- .../65d6c0b53262202bf8813f73.md | 2 +- .../65d6c19c1a1dc52e536a8e21.md | 2 +- .../65d6c390f03b85333445b5e4.md | 2 +- .../65d6c7f99ec5d13d543dccf4.md | 2 +- .../65d6c8c2c21ad83f837b4bb9.md | 2 +- .../65d6ca37133db041a059b352.md | 2 +- .../65d6cb8800b1274686877c25.md | 2 +- .../65d6cc2551fe584833cd6cda.md | 2 +- .../65d6cd757478424b84d7f445.md | 4 +- .../65d6dadcc5e50f5d3d3c8e95.md | 2 +- .../65d6dc5686b49d61612472e0.md | 2 +- .../65d6dd0d7fc3c563482b8ad6.md | 2 +- .../65d6e2c17bb85b727ddf51d6.md | 6 +- .../65d7480fba8a2b88f5499094.md | 4 +- .../65d74ca5293a7b9397dec0e6.md | 2 +- .../65d74e055819ee970713e509.md | 2 +- .../65d74fe1b1db8c9b43fb93fd.md | 2 +- .../65d750f42fb8c69d48edb565.md | 2 +- .../65d75185d536899fd3c01977.md | 2 +- .../65d752c6240228a36a5a3ac3.md | 2 +- .../65d862dca01bd8e8a6f7561b.md | 2 +- .../65d863be0ea26dea821fb459.md | 2 +- .../65d86638218150ecf514c478.md | 2 +- .../65d867969a26ebf43e31297d.md | 2 +- .../65d868a1bdc45bf6ec63b5bb.md | 2 +- .../65d869b6f586e1f9a02aa19b.md | 2 +- .../65d86af6cdfed1fcab11abbe.md | 2 +- .../65d86c1b4c4fd6fef305999b.md | 2 +- .../65d86d187f5ec600eb58fb9e.md | 2 +- .../65d86e08994c4a0436d92766.md | 2 +- .../65d86f2835110e0770f5333f.md | 2 +- .../65d8713fd64b650c269676cd.md | 2 +- .../65d87217064c730ef7bc63fe.md | 2 +- .../65d881130285e11fd1a6f790.md | 2 +- .../65d88b76573df039d43f29bc.md | 6 +- .../65d890f37666763b1c08e284.md | 2 +- .../65d892ad7262d64a5db56906.md | 2 +- .../65d8938e6254064bd4cd63fa.md | 2 +- .../65d8947a2588474f90595bcf.md | 2 +- .../65d89562dff69551e7683df3.md | 2 +- .../65d897caddd4d657e3862b36.md | 2 +- .../65d950cef8533a636d6bd51e.md | 2 +- .../65d957af14072272d091fc45.md | 2 +- .../65d959d3478ceb77dc1b28a3.md | 2 +- .../65d95c504f0bce7e8f6a30ea.md | 2 +- .../65d9633ff2cc710bd3e18c03.md | 6 +- .../65d9646cf07b7b0e74fbfe6f.md | 2 +- .../65d9664a976fb114cf9f1928.md | 2 +- .../65d967ec3ad9fb162e3b6d67.md | 2 +- .../65d96b62de43441ee5d01b88.md | 2 +- .../65daa3bcb0ef255d206f91b8.md | 2 +- .../65daa68d2bec806393956a94.md | 2 +- .../65daa8143ae77767ad914ba4.md | 2 +- .../65daa8cce1b9206995e4aec3.md | 2 +- .../65daa9fa35b2dd6c6e29636d.md | 2 +- .../65daab9b713d3e6e6272c8bf.md | 4 +- .../65dab0c26091a87db218685a.md | 4 +- .../65dab1186529467ee5e463a7.md | 2 +- .../65dab20c41a21a817084ecdb.md | 2 +- .../65dab50a398b0f851f7a1c9b.md | 2 +- .../65dab742fb5c1c8d81bb063b.md | 2 +- .../65dabddd6b64319c42b36aa2.md | 2 +- .../65dabf5eb13aae9ff91c40a2.md | 2 +- .../65dacf1ea93489b07bbe48d8.md | 2 +- .../65dad153fd675cb51e8423b0.md | 2 +- .../dialogue-placeholder.md | 15 - .../6635c3e30e02d224d4450eac.md | 4 +- .../6635f9203e0ed42948db1e4c.md | 2 +- .../6635f9c305ad6d2a08cb6ad4.md | 2 +- .../6635fc67f6d0f82ad629e71d.md | 2 +- .../6635fdc8fdd98f2b56c3bcf8.md | 4 +- .../663601a777cfc92cbaf8cb7c.md | 2 +- .../66360374d980d82d3cccddf7.md | 2 +- .../663604ab610a932dc9882194.md | 2 +- .../663606cc695a992e81ef521d.md | 2 +- .../663608aa63d5b72f475b7718.md | 2 +- .../663609d95c99422fce1d3824.md | 2 +- .../66360b4ec92e49305fec41ce.md | 2 +- .../66360c141117e030da0c0cb3.md | 2 +- .../6636159376b91532f4f8e49b.md | 2 +- .../66361836f505f333d344da43.md | 2 +- .../66361ad945006834b7eb7ccd.md | 2 +- .../66361c43829cea3535e7a49a.md | 4 +- .../663620974eb4a0369d76b6b8.md | 2 +- .../663621cf8781e93738b3e30f.md | 2 +- .../66362350df72dc37d8c9ca40.md | 2 +- .../6636242c12c019384fd78b5a.md | 2 +- .../6636263059a6703a80ee06aa.md | 4 +- .../663626ee2c3a803af8cc2fd6.md | 2 +- .../66362781eb0d663b5eabc353.md | 2 +- .../6636285e6fcb733bdffaa986.md | 2 +- .../6636ebb50b24c83f130344f4.md | 2 +- .../6636ee901c0de13ff4f02edc.md | 2 +- .../6636f20df76124410fe597e9.md | 2 +- .../6636f36bfde85f41809044c9.md | 4 +- .../6636f47542d2a4421a433d8e.md | 4 +- .../6636f652561a9842e74b032a.md | 2 +- .../6636f834a7b32443a43fa4e0.md | 2 +- .../6636f90f25a10b442185e3b8.md | 2 +- .../6638478a5f79414a5126bca3.md | 2 +- .../66384b3e267aef4c6daf5279.md | 2 +- .../66384d37bfbd344d5c647fbd.md | 2 +- .../66384eb6677d974e02af573b.md | 2 +- .../6638510e8311f74fec51b839.md | 4 +- .../663855865f5d53510f9cd9a5.md | 2 +- .../663856f8cf403151ac9d9e8a.md | 2 +- .../663897f00196a953f16499c6.md | 4 +- .../6638994f7dbcb3548e458202.md | 2 +- .../66389a37bc8a4b5539eab451.md | 2 +- .../66389c04cffc4f55e6e0f798.md | 4 +- .../66389e09cec2fa569567b15a.md | 2 +- .../66389ee34417c057109ed5f6.md | 2 +- .../6638a163d5757f57e5270598.md | 2 +- .../6638a290bc4a5458dd6ebf07.md | 2 +- .../6638a5aaf619a15a1c5cfe6f.md | 2 +- .../6638a7713695f25abd3f3c02.md | 2 +- .../6638a9a5dee1ac5b6a9db7d9.md | 2 +- .../6638aa72831d185bdac55c12.md | 2 +- .../6638abe5e8d43a5c7ed9d320.md | 2 +- .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 6 +- .../6556c1255efe438cbba5ce06.md | 2 +- .../6556c24670683b8d6d80bb32.md | 2 +- .../6556c3561e21d38e21518845.md | 2 +- .../655792631f21afaa40c611e1.md | 4 +- .../655795519e1068aac3351755.md | 2 +- .../6557b169bc7ab4b66929672d.md | 2 +- .../6557d6a229e541bfde2c560d.md | 2 +- .../6557db51366bf6c15a966fb0.md | 2 +- .../6557dea8c258c1c2a767deb7.md | 2 +- .../6557e026c053f9c362a1983e.md | 2 +- .../6557e1ad953431c417763b3b.md | 2 +- .../65593cf82e2430e8567edf39.md | 4 +- .../655a21f5512be1f7dbfe4cad.md | 2 +- .../655a256c6fce94fb9c1cc841.md | 2 +- .../655a33bb8f2009ff7a7abfaa.md | 2 +- .../655a3470e882d10004441cf3.md | 2 +- .../655a367638e3f401eb0235ea.md | 2 +- .../655a39242197c9040ddedef2.md | 4 +- .../655a3a2fe5a5cd04f8caa03e.md | 2 +- .../655a3b8981a93f05bbfea7ba.md | 2 +- .../655a3cc030fb970687d6444d.md | 2 +- .../655a4e0c1176be0e1b785c96.md | 2 +- .../655a55068842f6143a7bcc46.md | 2 +- .../655a591ad34faa18c8338f9b.md | 4 +- .../655a5e76ca6f8d1b1a88e0f1.md | 4 +- .../655a79e595bd202b4cd5e2d2.md | 2 +- .../655a7c5211e5252cf8a4ed01.md | 2 +- .../655a7d752ffc542e5874af0b.md | 2 +- .../655a896f31ca6a32913d1106.md | 2 +- .../655a8c9d2a0ea136a0fd3631.md | 2 +- .../655a9a4cef8a173b8c27fc84.md | 2 +- .../655a9d161bf4cf51369ff1e0.md | 2 +- .../655a9f8d6d3af8538a178166.md | 6 +- .../655b283d10fee46040e0a893.md | 2 +- .../655b29fb2c8b1861bf4fbab1.md | 2 +- .../655b2aa6807cae6273ca23fb.md | 2 +- .../655b32b2812874680f3198d3.md | 2 +- .../655b34a4b45a76689cb429c6.md | 6 +- .../655b34e53bf2cb6908042c98.md | 2 +- .../655b3581926acd6a172fa94b.md | 2 +- .../655b37ecf9da446bd1dcff4f.md | 2 +- .../655b39e59c29d16d64a2ce8e.md | 4 +- .../65ddb2ee481da72f38f076ad.md | 6 +- .../65ddb38c14e76d317c6128e6.md | 2 +- .../65e44fdc3b0d5813ee7fc300.md | 2 +- .../65e452611e67af1a07314eb6.md | 2 +- .../65e4642c66bb7a29b328111e.md | 2 +- .../65e46524078f872c3a871f9f.md | 4 +- .../65e4660946dec02eb08f1a0d.md | 2 +- .../65e466b7e1db1530a27f413b.md | 2 +- .../65e468fe7454d936320fe31c.md | 2 +- .../65e5c959087282242cf23f03.md | 2 +- .../65e5ca3d8fd484268f4336d4.md | 2 +- .../65e5caebc431182877f90758.md | 2 +- .../65e5cc619608ce2bf40e3ce8.md | 2 +- .../65e5cd292dbe212e2af21c9e.md | 2 +- .../65e5cf002c98ea3289bf2bea.md | 2 +- .../65e5d04819aa7c35cf23028c.md | 2 +- .../65e5d1128a3a2137ff818dd6.md | 2 +- .../65e84a436d691712a7769ea9.md | 2 +- .../65e85c512d559f216cacd3c4.md | 2 +- .../65e865a63c108a2f651b58c4.md | 2 +- .../65e8668b12eaa63202034f84.md | 2 +- .../65e8677731fef734895ac330.md | 2 +- .../65e8687c037bd7373bac6bb8.md | 2 +- .../65e8697e64f1883a30a759e5.md | 2 +- .../65e86cac39492642332416e9.md | 6 +- .../65e86e39e990f4461c9e23a7.md | 2 +- .../65e870a2ad67264ba3aac3f6.md | 2 +- .../65e92d17a7e3c777c5a2f4b1.md | 2 +- .../65e932555f5de583b53ac688.md | 2 +- .../65e93353894747864641dc5c.md | 2 +- .../65e93446e44ce704166696fa.md | 2 +- .../65e935d6ca6d6b082cf59682.md | 2 +- .../65e9376e45814e0c248c2262.md | 4 +- .../65e9393152c63010e8d14dce.md | 2 +- .../65e93a6cca356414bb39c4a6.md | 2 +- .../65e93b241e3f2216db6801e8.md | 2 +- .../65e93be2cbc1da18d7602a31.md | 2 +- .../65e943b74900112d64038331.md | 6 +- .../65e99114ec85863bbd32be2d.md | 2 +- .../65e992a27a99bd3fce984132.md | 2 +- .../65e9932d9cab2348221a1139.md | 2 +- .../65e993f3248e434a5a47744c.md | 2 +- .../65e994e2f526634d09c0814a.md | 2 +- .../65e99595bee9924f07b5abc3.md | 2 +- .../65e9965b96af115148dc3d79.md | 2 +- .../65e9972a13329b53a5aff71f.md | 2 +- .../65e997de10f05355b0354cf8.md | 2 +- .../65e9988f286c8457cc809619.md | 2 +- .../65e9991e59d4b959920e8c7d.md | 2 +- .../65e999be5746e45b5a8bb757.md | 2 +- .../65e99a2986903b5c9f4bc720.md | 2 +- .../dialogue-placeholder.md | 15 - .../661750f15f41cc866197183d.md | 4 +- .../6617513e3855718810b088d0.md | 2 +- .../6617528c1b07688acdfea4e9.md | 2 +- .../661752fbc765ec8c13f96616.md | 2 +- .../66175386c145ea8d96b0adf9.md | 4 +- .../6617562f72eb2a9387252430.md | 2 +- .../6617569f81323494d7c80fa4.md | 2 +- .../661757150c7a75961a574a39.md | 2 +- .../66175792ec93b19771c55c62.md | 2 +- .../661757e285095e986fed9c27.md | 2 +- .../66177150856cd6d0ca504c9f.md | 4 +- .../661771a11af289d1ec5c72f9.md | 2 +- .../661772551b64ddd40c834b1e.md | 2 +- .../661772f42e1412d5bfe4c655.md | 2 +- .../6617962704224fe969a76811.md | 2 +- .../661796e4635cd3eb1c8c78a4.md | 2 +- .../661797b505f2d3ed4b170d74.md | 2 +- .../66179829f664e3ee9b42ce5f.md | 2 +- .../6617994636fa13f16060b12b.md | 2 +- .../6617aea9ccdd68f7088368d1.md | 2 +- .../6617af3ab73475f87b53a59d.md | 2 +- .../6617afa03e1a7bf99f123c52.md | 2 +- .../6617b04b6e9139fb30d059d9.md | 4 +- .../6617b087df2220fcc00514ec.md | 2 +- .../6617b1efe920c2ffea40b54d.md | 2 +- .../6617b23534265c00d6b800fd.md | 2 +- .../6617b2b0388c600232500e28.md | 2 +- .../6617b34260704803d74a6e07.md | 2 +- .../6617b3d0e2de65050f11351c.md | 2 +- .../6617b41fe23fc0066e715317.md | 2 +- .../6617b494880f74079c400fa2.md | 2 +- .../6617b500a7049808f3a2a593.md | 2 +- .../6617b53e5eda8e09c6c67d28.md | 2 +- .../6617b674eb480b0c8d3d6031.md | 2 +- .../6617b81046e7b11287a7bef8.md | 2 +- .../6617b9b4bb38f916a2c01f8e.md | 2 +- .../6617bae50ecd231987654d2e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../658111239f39a01c8f095c44.md | 4 +- .../658112ee8ac40a1d9619f160.md | 2 +- .../658113cc404fc81e44cb941c.md | 2 +- .../658114e39ae35a1ece3e4ef1.md | 2 +- .../6581157ca9f14c1f5394d232.md | 2 +- .../65811619cf9fad1fe57fd7b8.md | 2 +- .../6581178fca60702052899c94.md | 2 +- .../658118a9a10235216e6cd698.md | 2 +- .../658147bb3dbda824437fd6f9.md | 4 +- .../65814f353f7b4f252e11b550.md | 2 +- .../65815057676f2625ba44a320.md | 2 +- .../658150c6b7f47a2629b2372d.md | 2 +- .../6581530787b552274518eea5.md | 2 +- .../658153bbda68b527d415c463.md | 2 +- .../658154d361f5f6285eeeffc6.md | 2 +- .../6581557c17e64128b1a5aeb6.md | 2 +- .../6581561eb7a353292c4a1ff7.md | 2 +- .../6581568b3a22522999c40969.md | 2 +- .../6581576a14f97b2a2d82c584.md | 2 +- .../658157d104bbc92a95147e45.md | 2 +- .../6581588237ef332b1f4a2418.md | 2 +- .../658158edd3fc672bafe96079.md | 2 +- .../6581596326d6ef2c0b39200d.md | 2 +- .../658160772584ba319849f910.md | 4 +- .../65816188f69f4731f852414b.md | 2 +- .../658162d19fa392326fe7a5c7.md | 2 +- .../658163793f65e532b8fa18e6.md | 2 +- .../65816435fa555c330f785cbb.md | 2 +- .../65818f21f6e4f33551f7023a.md | 2 +- .../658191bf5053a835c882fdd3.md | 2 +- .../65819284843aab3625cf49e1.md | 2 +- .../658192efec6fe7366f7b99d2.md | 2 +- .../65819377e2ad2536b3d1e0c0.md | 2 +- .../6581944b911c3c3715d35518.md | 2 +- .../658194a34cb24537624fad0e.md | 2 +- .../6581950a4e5ca237a17d1a02.md | 4 +- .../658195600d516b37e310fbf2.md | 2 +- .../658197767dc3fc387439e067.md | 2 +- .../6581a2a527222938f4f0a9eb.md | 2 +- .../6581a32ee97531393b34b783.md | 2 +- .../6581a3ccf2ecd839816c885d.md | 2 +- .../6581a46a402a0d39de6b1932.md | 2 +- .../6581a5c14eb46b3a36f082c6.md | 2 +- .../6581a6b50e86ae3a9041f6f1.md | 2 +- .../6581a7d6af8f2f3aefd232ab.md | 2 +- .../6581a95da053653b4593a650.md | 2 +- .../6581aa0c6583c53b927defa4.md | 2 +- .../6581add0405ccf3bfc3c1d5f.md | 2 +- .../65a1f4b78e0174e6ce7272ff.md | 2 +- .../65a1f959ca8f18f0e711d596.md | 2 +- .../65a1fa60a447d4f36ae16e1e.md | 2 +- .../65a25ccb31eedb00df74679f.md | 2 +- .../65a351bd69b0b72d7ed24eb5.md | 6 +- .../65a3524b7cfbc82f51667b0a.md | 2 +- .../65a35281e6f8f4303df075e5.md | 2 +- .../65a352d14f8050311510e2e9.md | 2 +- .../65a35340e8c3ae32030cea01.md | 2 +- .../65a3538f615216331ea90f58.md | 2 +- .../65a35429c637c13540c9be80.md | 2 +- .../65a35b30ccc7db44250a72b6.md | 2 +- .../65a35b8a7dd409452ec99d38.md | 2 +- .../65a35c036df46e46187c31a3.md | 2 +- .../65a35c7b9d642f478d6cabba.md | 2 +- .../65a35cf34eb65f48c24ee97e.md | 2 +- .../65a35d50e8421d49ef07ae09.md | 2 +- .../65a391fe39a2997ea4c0e980.md | 4 +- .../65a392505010427f98bd8363.md | 2 +- .../65a392b9f8a69480b1063c86.md | 2 +- .../65a393115e989381c5dc0c4c.md | 2 +- .../65a3937c171d9182e6bb4bc5.md | 2 +- .../65a3948b46f1b6857a598ff7.md | 2 +- .../65a39972a4169f0739dd52b8.md | 2 +- .../65a39a1ed201f80945939c52.md | 2 +- .../65a39a8889842f0a4ed3faa4.md | 2 +- .../65a39ae928cfbd0b75cd91c5.md | 2 +- .../65a39b443701060c7297158e.md | 2 +- .../65a3dafe5c945761cef35199.md | 4 +- .../65a4f2c2d1bbdfbe82cb3fdd.md | 2 +- .../65a4f3c0e87146c0d01a57f8.md | 2 +- .../65a4f4aef1c065c3263c561a.md | 2 +- .../65a4f58e1daa8fc51dafc832.md | 2 +- .../65a4f5fe475701c6697e738b.md | 2 +- .../65a4f6ca14fdbfc86041b28a.md | 2 +- .../65a4f87e991076cbb4efd9bc.md | 2 +- .../65a4f90542fdffcd6533424a.md | 2 +- .../65a4ff8554c98dd601a081d4.md | 2 +- .../65a5000506fe76d745652a33.md | 2 +- .../65a5010affb10fd99d166200.md | 2 +- .../65a502f63b185addb3117797.md | 2 +- .../65a5034b32a0cfdefbe36156.md | 2 +- .../65a50441ea961ee157da6ff3.md | 4 +- .../65a505250947a4e3777c82ab.md | 2 +- .../65a506572b8d62e47a6f1c08.md | 2 +- .../65a507474a05a9e869827a34.md | 2 +- .../65a507ad3caccfe9620e868b.md | 2 +- .../65a5080cafc379ea8d382c42.md | 2 +- .../65a50874fd56ceeb9d8a271f.md | 2 +- .../65a508d77b492aecb63b06b5.md | 2 +- .../65a5312db639d2f8fd4c31a7.md | 2 +- .../65a533f54a5afeff6c6bb996.md | 4 +- .../65a53475949fcc0056b1e479.md | 2 +- .../65a534f9fdc15f01ed67d860.md | 2 +- .../65a73f5e3153ba7bff076a3e.md | 2 +- .../65a7405cef607d7f856cc5ac.md | 2 +- .../65a74152da45e881db4f54dc.md | 2 +- .../65a742367d9803841b422795.md | 2 +- .../65a74339f74217867ec2eb5e.md | 2 +- .../65a743f03d6688884acb6cb2.md | 2 +- .../65a7455f319ba98b5885cb6a.md | 2 +- .../65a747a9502c8f8fbcd5dd13.md | 2 +- .../65a749262ad6c093d2dc8bb1.md | 2 +- .../65a74ac67e7fbd97ef282812.md | 2 +- .../65a74b5ca72a0c9a0b8e5e99.md | 2 +- .../65a74c672ff11d9c210a8732.md | 2 +- .../65a74cd01bc1b59d99c053a8.md | 2 +- .../65a74dae1b3acd9fad3a068e.md | 2 +- .../65a750a82c2476a6305bf621.md | 2 +- .../65a751927c4b80a86e6fb1c9.md | 2 +- .../65a788ea40f8e6b77d3cc64f.md | 2 +- .../65a78dadbf033cc11554453d.md | 2 +- .../65a78e7b5fb9a0c38757cc3e.md | 2 +- .../65a78f35fab096c5694079db.md | 2 +- .../65a7917a28aa16ca5a832593.md | 2 +- .../65a792163bf705cb7b6eb255.md | 2 +- .../65a7957981392ed32523e628.md | 2 +- .../65a79822981b3fd86a5cb03b.md | 2 +- .../65a7996c848275dbf2083044.md | 2 +- .../65a79a08cb0594ddd408e4db.md | 2 +- .../65ca7d68954aca359009f790.md | 2 +- .../65ca82211643fd3f990788dd.md | 2 +- .../65cb916a2d3d9851f81601b2.md | 2 +- .../65cb95e5ff03d253dcf867af.md | 2 +- .../65fc8beb00559e5a183ab2de.md | 2 +- .../65fc8d3b0133d45abd7a179b.md | 2 +- .../65fc92b127e3af5bcab2a449.md | 2 +- .../65fc932d577d505c57e9551a.md | 2 +- .../65fc9417738a7e5cd2bf317e.md | 4 +- .../65fc94ba65ed765d55195bc0.md | 2 +- .../65fc989e09a9226b9b51dc87.md | 2 +- .../65fc990ec22b3e6c0345c725.md | 2 +- .../65fc9a04edb4d56c8390bc3a.md | 2 +- .../65fc9ab3635ebc6d167f86e6.md | 2 +- .../65fc9b4c8577c76d76724227.md | 2 +- .../65fc9be86f2ae26ddcdf0bb3.md | 2 +- .../65fc9c5db0a80e6e3d3cfce5.md | 2 +- .../6602ec717db2bc1105700d40.md | 2 +- .../dialogue-placeholder.md | 15 - .../655c131291cbcb8febf21e64.md | 4 +- .../656b732c8110ff8936f016de.md | 2 +- .../656b74ab2a075f8a05c66f41.md | 2 +- .../656b757d8294618a5eefd710.md | 2 +- .../656bbba66c53330f4316fd9f.md | 2 +- .../656bbbe6d57609104b152625.md | 2 +- .../656bbcc8333087117b4d9153.md | 2 +- .../656bbd3dea715a11ce02b670.md | 2 +- .../656bbded100497126ccc6e5d.md | 2 +- .../656bbe4c45fc9512d58ba0e2.md | 2 +- .../656bbeb152c95913465476e3.md | 2 +- .../656bbf3a1b344e13bc7fa12c.md | 2 +- .../656bbfaf6cbc3f1418acca3c.md | 2 +- .../656bbfedb30479145d464e37.md | 2 +- .../656bc028a62f3a149ed36971.md | 2 +- .../656bc05be141d914dcc812c3.md | 2 +- .../656bc094df5acf151fb264d8.md | 2 +- .../656bc0bd4a112e155c589e33.md | 2 +- .../656bc0f87049dc159ce63187.md | 2 +- .../656bc15142eeeb15e31d258b.md | 2 +- .../656bc3bd0a323317d4117a49.md | 4 +- .../656bc4c430704c19121c5eb4.md | 2 +- .../656bc54c7a049d197017b9c7.md | 2 +- .../656bc5a71b33ae19ad65166a.md | 2 +- .../656bc669dbd6561a22060cf0.md | 2 +- .../656bc75be35fb11a7c27a788.md | 6 +- .../656bc7f08edd541afdd87231.md | 2 +- .../656bc8f4928b351b8a6c4d53.md | 2 +- .../656bcaea19405d1c6f2accb9.md | 2 +- .../656bd6dde3a62c205cb41b2d.md | 4 +- .../656bd701970c6c20a9c89b0f.md | 2 +- .../656bd7723e1e4c21039f5916.md | 2 +- .../656bd80d58dd31216af64ddf.md | 2 +- .../656bd968e52c34220164de8d.md | 2 +- .../65a84bec88772eaff6e56679.md | 2 +- .../65a84dad1595bbbc2e9cd895.md | 2 +- .../65a84e922382a7bd112057ad.md | 2 +- .../65a84f2370686dbda3e53aff.md | 2 +- .../65a85090914872be8ca97793.md | 2 +- .../65a851a6389e6cbf2c2cf158.md | 4 +- .../65a853b498eb87c035f6da13.md | 2 +- .../65a85418ea38cdc0a334dab2.md | 4 +- .../65a9457392dfd7d564bc940e.md | 2 +- .../65b28add2c939e25b1d9b0e1.md | 2 +- .../65b28bbe803df52c4e76dd15.md | 2 +- .../65b28d5f4b4c502d2b7917e1.md | 2 +- .../65b28e008537c42da87ace01.md | 2 +- .../65b28ee9c5a5972e8bb2a5f3.md | 4 +- .../65b28f840a0d962f2240e800.md | 2 +- .../65b2af1545e34334b7573de9.md | 2 +- .../65b2af807f713c351c5b9435.md | 2 +- .../65b2b0e08ec66535fa8542eb.md | 4 +- .../65b2b181cb9b2136e833a17a.md | 2 +- .../65b2b2781c59e837a5e0beb2.md | 2 +- .../65b2b383fb6406386dab3499.md | 2 +- .../65b2b3ea62a86838c216db73.md | 2 +- .../65b2b54bf7897c3954e20971.md | 2 +- .../65b2b6255fe7973a8bf80902.md | 2 +- .../65b2b6aef88e363af2749620.md | 2 +- .../65b2b74cb90a3d3b5d1acc48.md | 4 +- .../65b2b80774ecba3c156722aa.md | 2 +- .../65b2ba3323d6d33d470e5f53.md | 2 +- .../65b2bb073ac8d03dfe507810.md | 2 +- .../65b2bd42ca24dd3ede91aa41.md | 2 +- .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../6626261426a32b191320ecbe.md | 2 +- .../662626b2e13cfe1d39bc40fd.md | 2 +- .../66262700a108801e85319172.md | 2 +- .../6626273eb00c031f4988f129.md | 2 +- .../662629de1d3ccf2559a76a02.md | 2 +- .../66262a51f3a76626829fe191.md | 2 +- .../66262a982c6ae427498f9871.md | 2 +- .../66262b58c53d902944183b44.md | 2 +- .../66262b91a2380f2a02d20e94.md | 2 +- .../66262c938943392c6aa23d39.md | 2 +- .../66262d2afcdcf52e02a98d24.md | 2 +- .../66262d74745ccb2efde7670e.md | 2 +- .../66263023754e892fd8fd3eee.md | 2 +- .../6626346c3db7ed3eab925b8c.md | 2 +- .../662634fa4dab0640457469f6.md | 2 +- .../6626355a442bde41613ed03b.md | 2 +- .../662635b73cca81426d091f59.md | 2 +- .../66263606a953984372df559a.md | 2 +- .../662636481f9a3a4467dcaec3.md | 2 +- .../662637442baaf548015d56d9.md | 4 +- .../662637b4ae77ed48d6d5ba8d.md | 2 +- .../66263800f12d8d4a6edffdcd.md | 2 +- .../66263852d4e9534b53c82e2e.md | 2 +- .../66263891f8b3f74c36cd90b4.md | 2 +- .../662638ca74be054d04c448fa.md | 2 +- .../662639212dc5664e08ec05f6.md | 2 +- .../6626396c2fd2604f117731b2.md | 2 +- .../66263a41ce552c514cb6fc3e.md | 2 +- .../66263aace1c84e52a2974049.md | 2 +- .../66263b5ca3878d54811f9ac2.md | 2 +- .../66263d28fe1eae5a2601d0d6.md | 4 +- .../66263d47baac2d5ad278e68c.md | 2 +- .../66264a9e3e030663acc4109a.md | 2 +- .../66264bc673d62766a8ab48bc.md | 2 +- .../66265cebc033f66a2a4451e9.md | 2 +- .../66265d447926ae6b9e9af13e.md | 2 +- .../66265dd49cbab56d038d0d2e.md | 2 +- .../66265e0ac3bdc26ddf3525f5.md | 2 +- .../66265e4a43ec6d6e9ba7cc79.md | 2 +- .../66265ec39f8cf36fe615bd11.md | 2 +- .../66265f07ee69a670cc620d1e.md | 2 +- .../66265f3bb6ec0c7186e0c621.md | 2 +- .../6626676b898b1d721834736a.md | 2 +- .../662668a5aa1437017755151d.md | 2 +- .../dialogue-placeholder.md | 15 - .../65fd595245455d0dca3434ba.md | 6 +- .../65fd5a9680a9540e9787dec5.md | 2 +- .../65fd5c89285ea50f25bd0241.md | 2 +- .../65fd5d1a6cb7f10f77a06163.md | 2 +- .../65fd5da902959d0fda781aa3.md | 2 +- .../65fd5dfc174596101eae1107.md | 2 +- .../65fd5f2abfdbc510942d76f8.md | 2 +- .../65fd5f86457b4910e35b51c9.md | 2 +- .../65fd620e9ba99c116c42c361.md | 2 +- .../65fd63be9afd7611d2a9b788.md | 2 +- .../65ffa914bc44081a196fa6f7.md | 2 +- .../65ffa9d80e7ffb1ab9b4df1c.md | 2 +- .../65fff2b49779301d9bdab6fa.md | 2 +- .../65fff336d7553c1df86f7968.md | 2 +- .../65fff428290eaa1e5819c119.md | 2 +- .../65fff57ce568cf1ed9702fbf.md | 2 +- .../66000a440c2f492ddee509f9.md | 4 +- .../66000ac46e87f52e84328b95.md | 2 +- .../66000eeeec06b6338a5c5caf.md | 2 +- .../66000f74c71b623407a8394e.md | 2 +- .../66000fec4b5a8c348421fada.md | 2 +- .../6600107b9dffa8350e0c4ee8.md | 2 +- .../660011289b5237359f69c76b.md | 2 +- .../660011d015f7d43626524ef8.md | 2 +- .../660012a18576e836ea18fa0b.md | 2 +- .../660012ff748bf2375c31b591.md | 2 +- .../660013ce54713f37ecac079d.md | 2 +- .../6600144958b1d33857b0309f.md | 2 +- .../660014d3f5b02038de6ac35c.md | 2 +- .../660019617debd03c767e0a3d.md | 4 +- .../66001985c091f13cda6d4f4d.md | 2 +- .../66001a1c9df0a83d8e8c670a.md | 2 +- .../66001a935988e43e1183bd38.md | 2 +- .../66001b1aa59adc3ea4b024b4.md | 2 +- .../66001b8d0518d03f18b19715.md | 2 +- .../66001be61f20a33f8a45f3cb.md | 2 +- .../66001cac957f0740252c2611.md | 2 +- .../66001d1ffd0e0b40a8cbf0c7.md | 2 +- .../66001d8b878f5141214f2d77.md | 2 +- .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 173 +++- .../6579c82fc81196a43686415a.md | 61 +- .../6579c8d3313c5fa61d25d4ff.md | 59 +- .../6579c96067f16bad8e7e6cba.md | 64 +- .../6579cee11b0bd1cc8bf20829.md | 59 +- .../6579cf3ada08bdcfd5eae689.md | 64 +- .../6579cf81a9cec6d21f872959.md | 61 +- .../6579cfc55663f6d40c4a65e1.md | 64 +- .../6579d002683211d5c7d13ef3.md | 64 +- .../6579d035f49339d7aa16ec74.md | 59 +- .../6579d06801111dd95231e7e5.md | 64 +- .../6579d40e7729a7e393cfcdd3.md | 61 +- .../6579d44bd49d1ae58c2603d4.md | 64 +- .../6579d49319613ee79fe12f7d.md | 59 +- .../6579d4ca0578b4e95f1df60e.md | 64 +- .../6579d4f3afd265eb0db874f7.md | 61 +- .../6579d539b1e5c2ec64484e49.md | 64 +- .../6579d56623c2d8ee0f2bea87.md | 64 +- .../6579d58e434920ef874f2502.md | 16 +- .../6579d62a28ab37f24f6ea8f9.md | 13 +- .../6579d67a4c6a3bf5d55ce3fd.md | 66 +- .../6579d7f5a745c0fac805d356.md | 70 +- .../6579d827ebd50afcacb829fe.md | 63 +- .../6579d84f48c9c2fe53b06de9.md | 59 +- .../6579d86fee9092ffb268f962.md | 59 +- .../6579d89bc117c40111641200.md | 68 +- .../6579d8d24bf33b02f22685ac.md | 64 +- .../6579db53194a7c0f617943ac.md | 59 +- .../6579db734a2b8010c3e92ada.md | 64 +- .../6579db9c67d64e123b19c235.md | 66 +- .../6579dbc2c1fc601436f2676b.md | 61 +- .../6579dbf6a3e8a5161a592169.md | 66 +- .../6579dc4332b86017e39b9c03.md | 183 +++- .../6579dce8bc44981add67eda9.md | 146 ++- .../6579dd420cf6b81db05470f4.md | 59 +- .../6579dd5f2f35b11f3dcd9702.md | 64 +- .../6579dd80bdd49220560f26ad.md | 64 +- .../6579dd9846f35921af1ffe1c.md | 65 +- .../6579ddb17d88c12323aae5b5.md | 62 +- .../6579ddc94db61d2463022da3.md | 66 +- .../6579dde808b24525c95ec2a3.md | 61 +- .../6579de040244fb274179f001.md | 59 +- .../6579de1f43444d2869022c6d.md | 66 +- .../6579de444ec34929dbc6c2ab.md | 61 +- .../6579de58f1da5a2b4c6ea741.md | 64 +- .../6579de73144df42cb2d373ef.md | 64 +- .../6579de90a68c532e08e96f02.md | 59 +- .../6579df1646568c3268b93637.md | 136 ++- .../6579df5f24a43034dbe456f1.md | 128 ++- .../6579dfac25b3e6370956a820.md | 63 +- .../6579dfd504a9ad385a3a4fd9.md | 63 +- .../6579e0385253cd3a7bd44902.md | 62 +- .../6579e08f06692a3c176f3faa.md | 66 +- .../6579e0e6402c813da7e25ca2.md | 68 +- .../6579e102b5a7223f0d0e9fc4.md | 61 +- .../6579e12834045640e90e58bd.md | 61 +- .../6579e13cd2c9ee424eb815df.md | 66 +- .../6579e153639adb43c017f3d3.md | 63 +- .../6579e17ff05c5d451c2e4f35.md | 66 +- .../6579e19be475334667ba4333.md | 60 +- .../6579e1b324902e47dae63c90.md | 68 +- .../6579e1cd6c8b6248fa62ed48.md | 147 ++- .../dialogue-placeholder.md | 15 - .../655c0f0e52bfc67bdeae16b4.md | 4 +- .../657e06eca8147f561619be7d.md | 2 +- .../657e07580285f658d1f98cfe.md | 2 +- .../657e07a2fdda8d5ac93d415e.md | 4 +- .../657e0868da73165e32763679.md | 2 +- .../657e0973aa91c662814c2ecf.md | 2 +- .../657e0eaff0dab975c4be3099.md | 2 +- .../657e10ccd09f1d7e38f4b560.md | 4 +- .../657e121b714602846fe2ce32.md | 4 +- .../657e15f175ecdf90b583ed01.md | 2 +- .../657e1a573140a49f09e30f6e.md | 2 +- .../657e1baa6a02c1a5b9a1157f.md | 2 +- .../657e1bd636d5d3a7085a6876.md | 4 +- .../657e1c94a89349aba3fec825.md | 2 +- .../657e1fd7b5ffaebc0ff4bd9f.md | 2 +- .../657e204159a66dbdc258fe71.md | 4 +- .../657e251157e07ecca1047516.md | 2 +- .../657e268215a9ebd3abad146f.md | 2 +- .../657e270fae538dd663360e65.md | 4 +- .../657e29a26f65fae11f8721f8.md | 2 +- .../657e2b41d0dd50e9fa123272.md | 2 +- .../657e2d40be7141f2c8cc9cc0.md | 2 +- .../657e312bc450e802af97847d.md | 2 +- .../657e335be2fe7e0d2839a072.md | 4 +- .../657e358a40dd95143df6fe26.md | 2 +- .../657e3a47f9d60c2b0ab6ce73.md | 2 +- .../657e3ab81d30a72de2311284.md | 2 +- .../657e3ba6795db234adf14c0a.md | 2 +- .../657e3ef7d1c8f445c9d9f2cd.md | 2 +- .../657e3f7e50ac0549666b4b64.md | 2 +- .../657e408655f2764fac4efa29.md | 2 +- .../657e431551f0835bbec6ccad.md | 2 +- .../657e449348a16b62e1f8cac6.md | 2 +- .../657e44fe476035667aab9114.md | 2 +- .../657e48135e86b276b6e233b5.md | 2 +- .../657e48ce19fca47b034d11eb.md | 2 +- .../657e4964fa7c9b7e6aa7428c.md | 2 +- .../657e4a245cc71782126b3316.md | 2 +- .../657e4a824ba68884c14f68b9.md | 2 +- .../657e4bdba35dc68e1977e5d5.md | 4 +- .../657e51344c206eabd5ffb872.md | 2 +- .../657e5280003334b1726df8a2.md | 2 +- .../657e551a5b6002c060324a6a.md | 2 +- .../657e56a042c7dec7005c3db0.md | 4 +- .../657e57b99282f8cd922a5f9a.md | 2 +- .../657e581f01bedfd00d3d57ce.md | 2 +- .../657e5879357fe6d2bbbdc2f0.md | 2 +- .../657e597aecc28ed883309243.md | 2 +- .../657e5af613558ce1f6e1d501.md | 4 +- .../657e5b73dc178de57e830212.md | 4 +- .../657e5bb8ac166ee76a69be96.md | 2 +- .../657e5c296bdba2ea26c67ca0.md | 2 +- .../657e5c7a5c7ef6ec6f39dc5e.md | 2 +- .../657e5d8f7f2274f2b1a8efcc.md | 2 +- .../657e5e0bd4e460f5ecfa01f4.md | 4 +- .../657e5e6fcabbfbf844429629.md | 4 +- .../657e5fa49b69deff5e9bff8e.md | 2 +- .../657e600a30c66c02e04b704d.md | 2 +- .../657e6117bebfda097995f2b7.md | 2 +- .../657e61ba2a53680d1a540bfe.md | 2 +- .../657e6247e4566c108b138f35.md | 4 +- .../657e6ffb22adc44942ceb5d4.md | 4 +- .../657e736ce426b15d9f3a3f99.md | 2 +- .../657e74a56fc5b6648a8140e5.md | 2 +- .../657e759a72dd0c67f8992ff5.md | 2 +- .../657e76b48cd1db6c9f04a27a.md | 2 +- .../657d4ea39262ba758c15bc1a.md | 6 +- .../657d5c9008b25e85e95ce60b.md | 2 +- .../657d5dc51cf88187cbf7d27c.md | 4 +- .../657d5e32e50d15885265eb30.md | 4 +- .../657d5eafe5e79d88d2b6328e.md | 2 +- .../657d6008a37af78962d30873.md | 2 +- .../657d777c3a22758abc00a183.md | 2 +- .../657d7892712a078b33d7e8a7.md | 2 +- .../657d791a78ae2a8bb7416ad7.md | 2 +- .../657d7a4ad41e438c5be0a138.md | 2 +- .../657d7b217b77cf8cf1969713.md | 2 +- .../657d9af10739f78d5401ad1d.md | 2 +- .../657d9b88332ce98fc894db2c.md | 4 +- .../657d9d6b3838fa9030d5b9d8.md | 2 +- .../657d9dbe3f6a1b90f79d81f2.md | 2 +- .../657d9e7fd1b3fa915c3c1401.md | 2 +- .../657d9eed9f6a5a91c7c5f210.md | 2 +- .../657d9f77e8d77292246e5679.md | 2 +- .../657da01f0bb64c927f6d84c3.md | 2 +- .../657da0838dfc7992f94c7df9.md | 2 +- .../657da0ec9f3a5a936a6cd54d.md | 2 +- .../657da1d38bf3e693eb579be9.md | 2 +- .../657da2e3cf29239535791805.md | 6 +- .../657da34294cbf695b2bfe889.md | 2 +- .../657e758778ff8dc01567c9e7.md | 2 +- .../657e76356b6af6c07fe338c1.md | 2 +- .../657e76d866ebcec0e44d0748.md | 2 +- .../657e77615bb8dec146e91f96.md | 4 +- .../657e77d93552a0c1b00f775a.md | 2 +- .../657e786b51f7eac240e92bcc.md | 2 +- .../657e7a17f47a8fc2d037f48e.md | 2 +- .../657ea8c4a679bbc40a7aef26.md | 2 +- .../657ea950baa4a8c48e39d031.md | 2 +- .../657ea9f6e0214dc4f84c8229.md | 2 +- .../657ec57a0ab01cc7af71f565.md | 2 +- .../657ec62074e77dc82b0f05e7.md | 2 +- .../657ec6ac4de4eac8bab2f2a7.md | 2 +- .../657eda6e48e0d7c92f0af163.md | 2 +- .../657edbc3e12e35cfc1d80358.md | 2 +- .../657edc5136791ed04ffab234.md | 2 +- .../657ee0a0c52d0ed1164a85d8.md | 2 +- .../657ee214b9ad1ad2b6f8325c.md | 2 +- .../657ee25acee11cd3122e0876.md | 2 +- .../657ee2f44346f3d4017cc990.md | 2 +- .../657ee3954d64e5d465500620.md | 2 +- .../657ee4171371e9d4d1402e91.md | 2 +- .../657ee47c1af836d5289254d9.md | 2 +- .../657ee51ce8dac8d5a227f758.md | 2 +- .../657ee5ddb47b1dd62f87d784.md | 2 +- .../657ee66dd1216ad6c61f1168.md | 2 +- .../657ee781258676d764a5282f.md | 2 +- .../657ee8a9a195b8d8756ca5e1.md | 2 +- .../657ee957cb4719d9031a0be4.md | 2 +- .../657ee9b69c2e26d964f67ee4.md | 2 +- .../657eeb163e1993d9e342d661.md | 2 +- .../657eebaa042b5cda6ec2dac9.md | 2 +- .../657eec0a21bc7adada04453e.md | 2 +- .../657eecb3b368badb3cc7fe4c.md | 2 +- .../657eed5ed318e4dbbce6903a.md | 4 +- .../657ef0061e99a3ddd0e1245f.md | 6 +- .../657ef4e5a4a1e1e126eba6dd.md | 6 +- .../657ef58855ff45e1e4ca70ee.md | 2 +- .../657ef61be0a682e2591776f6.md | 2 +- .../657fb48f31654ae4cb52d395.md | 2 +- .../657fb5034da144e55cbee9d7.md | 2 +- .../657fb5afeeba2de5d01dda0e.md | 2 +- .../657fb665a39478e642f5a139.md | 2 +- .../657fb8cfbd0e4ae797fc6077.md | 2 +- .../657fb92c6f888fe8013f1a28.md | 2 +- .../657fb980a9b567e860b77f2c.md | 2 +- .../657fba163fec41e8e00c5817.md | 2 +- .../657fbad88163d8e96189f823.md | 2 +- .../657fbb3a1a63d0e9c307fd83.md | 2 +- .../657fbc14d41a20ea5f286378.md | 2 +- .../657fbc85c25a16eac8356182.md | 2 +- .../657fbcecfc4d42eb28700349.md | 2 +- .../657fbd591461eaeba07ffff1.md | 2 +- .../657fbde9a43e35ec1ebafe56.md | 2 +- .../657fff0bfb6a28f1d70fa9ef.md | 2 +- .../657fff7dabba2ff23993b08c.md | 2 +- .../6580001adc7fd4f2b244f3a5.md | 2 +- .../65800082405352f30c6dbc7a.md | 2 +- .../65800148406738f397561d77.md | 2 +- .../658001a018bbcbf3fd84f832.md | 2 +- .../6580026241ae0ef46b181e49.md | 2 +- .../658002d23e245ff4ca8542d5.md | 2 +- .../658003870281a9f5541085af.md | 2 +- .../658003d8ff9da6f5c08971a1.md | 2 +- .../658009d86dc9caf988e2ea64.md | 2 +- .../65800a95389cc0fa4c197587.md | 2 +- .../65800b1c13005dfa9df75d73.md | 2 +- .../65800b96989013fb24aa1b70.md | 2 +- .../65800c12978ba7fb82007446.md | 2 +- .../65800cf36faba0fbfa1027b6.md | 2 +- .../65800d61890343fc5cce0ec8.md | 2 +- .../65800df7fc5d49fcd7209248.md | 2 +- .../65800e60dad5fefd4ed91589.md | 2 +- .../65800f4d194382fdebb81e1f.md | 2 +- .../658010478daa16fe79d8113a.md | 2 +- .../65801182280f63ff10ca4d4f.md | 2 +- .../658011ef9ec114ff80ce5e42.md | 2 +- .../658013bd3b1a06001a59e006.md | 2 +- .../65802ee9706eb103aea442f8.md | 2 +- .../65802f717cef8c042af950b8.md | 2 +- .../65802fe92ef0f404ba0437f7.md | 2 +- .../658030876ac4f605145aeae1.md | 6 +- .../dialogue-placeholder.md | 15 - .../6613cf7cb0b2704934764852.md | 4 +- .../6613d00727a7a64a5e010243.md | 2 +- .../6613d0773359964ab8812659.md | 2 +- .../6613d0d1d40e384aeecfa9c0.md | 2 +- .../6613d3c56e46394b97da3c30.md | 2 +- .../6613d3fe6615374be0d10008.md | 2 +- .../6613d46936e9374c24cfaaab.md | 2 +- .../6613d4fc79abb74c83b07fab.md | 2 +- .../6613d550a08c194cd27607ec.md | 2 +- .../6613d67b2a2a134d2b6275a8.md | 2 +- .../6613d6c3e74a984d6fcbd013.md | 2 +- .../6613d709407b9f4dc100b47b.md | 2 +- .../6613d803f9d4884e2a882a99.md | 2 +- .../6613d89075d1ac4e6773a94b.md | 2 +- .../6614abad2657585c6229fb4a.md | 6 +- .../6614ac949f89655d25e9d43c.md | 2 +- .../6614ad58c102e15df06c96d5.md | 2 +- .../6614ae3e02cc465ebee68851.md | 2 +- .../6614b1f8ee220c5f79df89b8.md | 2 +- .../6614b2714761f45fe3b17294.md | 2 +- .../6614b326f956cf605cd03775.md | 2 +- .../6614b3e52a6aca60bc3417fb.md | 2 +- .../6614b4a8ff3874612a8df77c.md | 2 +- .../6614b53003e92d6182e98978.md | 2 +- .../6614b572f81cb561d4ac39da.md | 2 +- .../6614bde62b7db56b9448285e.md | 4 +- .../6614be2a21b4426bfcd25919.md | 2 +- .../6614be98fc11336c52aa3093.md | 2 +- .../6614befe8e1dc16ca27b7b65.md | 2 +- .../6614c03efeb2cb6d2227d0b4.md | 2 +- .../6614c0ec11b55c6d849fbe3a.md | 2 +- .../6614c12f91d2286dcd1f0fe4.md | 2 +- .../6614c1d0e9e1976e3b524435.md | 2 +- .../6614c2262f754e6e85d2ff1a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 134 ++- .../6629cc728221a1a4a5613320.md | 55 +- .../6629ce1a4f6581a7266d6ca9.md | 67 +- .../6629ce6bffd1efa9c6c57eaa.md | 61 +- .../6629e0281f1f63c107adeeb1.md | 2 +- .../6629e10635cf1ec412861da1.md | 57 +- .../6629e2c8d7ddd4c836958a4c.md | 2 +- .../6629e49677d89dcc9614251c.md | 55 +- .../6629e6f8758adad2ae0894b0.md | 55 +- .../6629e8993ac42fd6825f9b54.md | 2 +- .../6629e96c186102d8a65bfbb9.md | 55 +- .../662a1be9a499ccee6beb20f9.md | 2 +- .../662a20ae5a9153fa9e6206c9.md | 2 +- .../662a26c7a3d49b0a4a19a00f.md | 55 +- .../662a2779b2aeb80c10508bf2.md | 84 +- .../662a292bb1622d1012b5b86e.md | 54 +- .../662a2990757239112d74142e.md | 59 +- .../662a2b1f0c9314142ae87955.md | 55 +- .../662a2f2a2c16bf1a9f3609b7.md | 57 +- .../662a304552f2631d63aa7cab.md | 59 +- .../662a30d3f1071a1ef14eefe1.md | 57 +- .../662a35f7eaaa932ab0973d0c.md | 59 +- .../662b5fdf67f4ea087ff7e590.md | 55 +- .../662b718c7709f809559d5806.md | 55 +- .../662b74055c06e60af4f9b976.md | 55 +- .../662b7577212ab40b8534efbf.md | 55 +- .../662b772113dc330c283730f3.md | 54 +- .../662b7d0fda698d0d84ac67f4.md | 64 +- .../662b803fd9ddc00e943e350e.md | 64 +- .../662b81901b178a0fd33f093c.md | 64 +- .../662b82c8d47f8a1076172391.md | 57 +- .../662b83b12cab3910d87fdebc.md | 93 +- .../662b868dab90d512fc912cad.md | 143 ++- .../662b871f32087113511f262a.md | 56 +- .../662b888ba2c1d713f3a05203.md | 57 +- .../662b8975b11107146a49ec58.md | 55 +- .../662e4dc39f884e1d15ed5f7a.md | 57 +- .../662e4f2edbb46a1dc6efc94f.md | 56 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 134 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../6630b37556424464ba0f984e.md | 4 +- .../6630b49ade31b06586863453.md | 2 +- .../6630b56594405466378bbfbb.md | 2 +- .../6630b687daf7dd66a730a0be.md | 2 +- .../6630b88fdd1eb2675cba64ec.md | 4 +- .../6630bb08c02b626826c937ae.md | 4 +- .../6630bc7702367d68c7679dba.md | 2 +- .../6630bd815e1b146937422948.md | 2 +- .../6630bf29b2e38669e3c15823.md | 2 +- .../6630e609d81a446cd663c521.md | 2 +- .../6630e7b497466d6d8bb5b863.md | 2 +- .../6630e831b3a1a36de42fb705.md | 2 +- .../6630e965a9e9c46e8b5a3ee2.md | 4 +- .../663246e8f661af779398be0e.md | 2 +- .../6632497b37b28b78907c0a97.md | 4 +- .../66324c110747c079691211a1.md | 2 +- .../66324d85e67a5c7a072a5b4d.md | 2 +- .../66324f956a24867b039d95c4.md | 2 +- .../66325225b08cff7be37ac2e7.md | 4 +- .../663253fdb77eab7c9f3bbd16.md | 2 +- .../66325752419d337dc13ffd83.md | 2 +- .../6632fd7b0b9f8087ff8aa3ba.md | 4 +- .../6632fe1b6548f7887488a767.md | 2 +- .../6633008b3377e5894cf71629.md | 2 +- .../663301c3812e2e89c08dcc31.md | 4 +- .../6633032bf786ff8a61b0c482.md | 2 +- .../66330444cf1ea28af44e980d.md | 4 +- .../663308af5363be8c4a5c68b9.md | 2 +- .../66330dac56ad868d51d5698c.md | 2 +- .../66330fc6d2e3c38e148c8789.md | 2 +- .../66331263a35e868f3dade3de.md | 2 +- .../66331384245d028fd8b1be23.md | 2 +- .../663315286b7cff907e92ae25.md | 2 +- .../663316fdcce39d9144ae40cd.md | 2 +- .../6633203e58595e93ef54ba3b.md | 2 +- .../6633261bb572f2953f5abd13.md | 2 +- .../66334fd916a3a697e1d2c631.md | 2 +- .../663350023c7cb898358af702.md | 2 +- .../6633511c7b197798ad5fd703.md | 2 +- .../663352b4860f03995736b6cd.md | 2 +- .../663354f60aafd69a4c0138da.md | 2 +- .../66339d408258519c61151a64.md | 2 +- .../66339e21256f099cd722292f.md | 2 +- .../66339f1995bdea9d4aa28cd8.md | 2 +- .../6633a14f17a4669e1c980d91.md | 2 +- .../6633a2a86218659eb77fb9a1.md | 2 +- .../6633a45ce837ac9f95394eab.md | 2 +- .../6633a64567c725a05a94b68f.md | 2 +- .../6633a97f928771a163b59745.md | 2 +- .../6633aa9cf90591a1f63a431e.md | 2 +- .../6633abfc050e82a29a76dd42.md | 4 +- .../6633ad387b6914a3313339b3.md | 2 +- .../6633ae85f1fb7aa3ca13234d.md | 2 +- .../dialogue-placeholder.md | 15 - .../651dd5a46ffb500e3f2ce47b.md | 4 +- .../657b5cec02f00e23028cdbd5.md | 2 +- .../657b602d5bf54224a94cbfa6.md | 2 +- .../657b631cc34605266f81b9bb.md | 2 +- .../657b64017820f626f6a092c2.md | 2 +- .../657b6531fad8572767c5b4dc.md | 2 +- .../657b6940d1ad7829b4d9a918.md | 2 +- .../657c836198f77668f5cfd122.md | 4 +- .../657ca33bb1f197812c1a358b.md | 2 +- .../657ca50a95d1c3828ee5a991.md | 2 +- .../657ca59e6e559782e4c10056.md | 2 +- .../657ca8e65f9c2c836eecd834.md | 2 +- .../657caa4012f1cf846dcaa619.md | 2 +- .../657cafc142a867006734c3ed.md | 2 +- .../657ccf3ab9ef2604c6ba696f.md | 2 +- .../657ccfa7eeb47305177d4a45.md | 2 +- .../657cd2ab46d95e075065d952.md | 2 +- .../657cd51dc73ba908478c9f70.md | 4 +- .../657cd8d94290160a8732893d.md | 2 +- .../657cd938cf0b0c0ad751ac23.md | 2 +- .../657cd9ae412af80b2a7ff265.md | 2 +- .../657ce2aee8f1d30e17cf89e5.md | 2 +- .../657ce387f809d60eb54f06d6.md | 2 +- .../657ce5caa3e1460ff657c6b0.md | 2 +- .../657ce738f6c4eb10e81fd937.md | 2 +- .../657daf702ed04a29ee42de69.md | 2 +- .../657df21cc45b1f66112fb8fc.md | 2 +- .../657df39e98ace1673de4c399.md | 2 +- .../657df429a575a6679e72d48f.md | 2 +- .../657df4ff04eed86814093f0f.md | 4 +- .../657e3c159dc94c6e33ba6115.md | 2 +- .../657e3dc46c5a816f0b12fb76.md | 2 +- .../657e47d5fa5dea7cbdaf484b.md | 4 +- .../657e4ab5b857f77e36c82a4d.md | 2 +- .../657e4b7d381d567e8d97967c.md | 2 +- .../657e4fd2ecf31280ef673f0d.md | 2 +- .../657e51218ff18f8191b76ea9.md | 4 +- .../657e5477269b94834908826f.md | 2 +- .../657e54f51fe1c983d840cb70.md | 2 +- .../657e57c429a4dc8662a61c96.md | 2 +- .../657e59605c6f688785fbb46d.md | 2 +- .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 14 +- .../65822308ded1ba4632f66aa3.md | 16 +- .../658225d560369446ece5518b.md | 14 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 16 +- .../65822934c8a0454803e3ef12.md | 12 +- .../65822bd82d708c4895080c35.md | 7 +- .../65823040bdb32949d4c1a96f.md | 6 +- .../6582324b5d37fe4b622bc3c0.md | 14 +- .../65823634a308cb4d6bcc5fa6.md | 4 +- .../658238f7604f154ea9a23e1e.md | 6 +- .../65823b0167fd894f4a7ea60a.md | 14 +- .../65823bbbdb4eaa4f9d20a0fb.md | 23 +- .../65823cfc74aa564ffc460489.md | 25 +- .../65823dde36392f505a39f7c7.md | 13 +- .../65823e87c9741750a22085a7.md | 2 +- .../65823ff0d4b991510fade1a8.md | 21 +- .../65824111a09164518320088d.md | 29 +- .../658244fdf4b0265334711664.md | 11 +- .../65824561f3478e5371a33ae5.md | 11 +- .../658246c28575d653d1f89b59.md | 24 +- .../65824872894f59546e3084e2.md | 19 +- .../65824a1b16631c54fa524154.md | 17 +- .../65824c7b4e2da85597693dcf.md | 43 +- .../65824dfdb6815d563b2d3256.md | 21 +- .../6582507654b3ed5712341382.md | 35 +- .../658252f6b1526d57b103d48a.md | 17 +- .../658254db6e12485a48130f57.md | 14 +- .../658255d5f955175b270f251d.md | 21 +- .../6582575b8089f85b8b92d7c8.md | 27 +- .../658258c0e5fbe85c14c060cf.md | 31 +- .../65825a9520a0795c8afbef50.md | 19 +- .../65825b758fe85a5cebabc8c5.md | 27 +- .../65825cda2668995d5168e37c.md | 35 +- .../65825e96b5db5f5dee6bf57c.md | 13 +- .../6582601b2987045e8e7da994.md | 25 +- .../6582622cb6c11a5f4c5d79b4.md | 21 +- .../6582687859366a618424d84b.md | 31 +- .../65826a6e9d189a623141c726.md | 15 +- .../65826af5b226a5628aa154b1.md | 61 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 4 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 6 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 6 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 32 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 4 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 8 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 6 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 4 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../use-the-s-tag-to-strikethrough-text.md | 1 - ...ve-compatibility-with-browser-fallbacks.md | 1 - ...ng-the-value-of-one-variable-to-another.md | 1 - .../build-a-budget-app-project/budget-app.md | 2 +- .../polygon-area-calculator.md | 2 +- .../probability-calculator.md | 2 +- .../time-calculator.md | 2 +- .../arithmetic-formatter.md | 2 +- .../656873ffdc638f7e290f60de.md | 38 - .../656874efd5102b81815c8ef7.md | 39 - .../65688efcc78c9495e73acfc9.md | 33 - .../65688f22703200963a85dfb7.md | 32 - .../65688f737b0ef396bf0c22d6.md | 60 -- .../65688f93a1b6e9970f710f62.md | 35 - .../65688fc27e8dda9760c45d7d.md | 34 - .../65689020cfd5279803976b25.md | 35 - .../6568904b83a2f29878578146.md | 42 - .../6568917528820d99236ad811.md | 52 - .../656896ffecbf07a2d3402a93.md | 57 -- .../6568991b4d4874a4d5271337.md | 48 - .../6568994faf481da5d37bfa40.md | 42 - .../6568997f94c673a68b035b60.md | 59 -- .../656899c0478950a7e5db2cc0.md | 41 - .../656899f4214ee6a881bc8649.md | 42 - .../65689a748de8fbaa00c5617e.md | 44 - .../65689aa3d3f2b6aad204a59e.md | 45 - .../65689ad61dfa81ab9ffafc86.md | 48 - .../65689b055e6f49ac6f82d3cf.md | 60 -- .../6568a242a3e1efc22b07274d.md | 49 - .../6568bb1ffe8462c427c0d386.md | 48 - .../6568bb656c67e9c54cced2d7.md | 51 - .../6568bba429481cc693fc2570.md | 53 -- .../6568bbc8c3bda1c773e23cf1.md | 60 -- .../6568bc19f3418dc8a8821187.md | 64 -- .../6568bc85c5beadca3e0f6eb1.md | 61 -- .../6568bd3741e379ccc220af1b.md | 64 -- .../6568bd85482755cdd26443ae.md | 78 -- .../6568bdb69e05a9cee01068a8.md | 61 -- .../6568beebba98a3d1f26f6bf8.md | 68 -- .../6568bf22bb5de0d2e8260cf3.md | 65 -- .../6568bf5e5b2f4bd3eb7ef995.md | 64 -- .../6568bf853bf06dd4ed25d4ca.md | 67 -- .../6568bfb601a54ed5b367b44f.md | 75 -- .../6568bfd65322add674039bde.md | 86 -- .../6568c0013b3b62d7617518c7.md | 71 -- .../6568c024933423d85d5ed93c.md | 76 -- .../6568c073d5f37fd99ab2ab0c.md | 89 -- .../6568c0a5edddc3daa65d20b2.md | 77 -- .../6569d83fe4dcc614c2ff971d.md | 77 -- .../6569d8a4b8d85515cbb1ce72.md | 87 -- .../6569d946293d4f185e32e2da.md | 78 -- .../6569d98303af38193149b66e.md | 96 -- .../6569d9dfd53db11b176d2963.md | 85 -- .../6569da02e7e2641be14ff922.md | 86 -- .../6569de93a5340b202667deda.md | 83 -- .../6569def38470282151f873ce.md | 84 -- .../6569df1d6fb83d22623b38c5.md | 87 -- .../6569df6916294723e01f0035.md | 86 -- .../6569df9e20f74a251d482c5d.md | 91 -- .../6569dffeee007f26d2b56d46.md | 103 -- .../6569e2a01a97b231862ba2ff.md | 89 -- .../6569e2e1944fe7329ab21c7f.md | 90 -- .../6569e309feb5d333867a034a.md | 93 -- .../6569e33a708a3834f6d4879b.md | 94 -- .../6569e37ec28e853628f18a86.md | 93 -- .../6569e3a134fea0371fa008de.md | 91 -- .../6569e3d1418b373839a0aa7b.md | 105 --- .../6569e41657a9923953aa7d3c.md | 102 -- .../6569e481e67f123ad25c5d20.md | 96 -- .../6569f6b48716b5402504e216.md | 97 -- .../6569f6ebe558bd4136da96cc.md | 98 -- .../6569f70a66ccdc42097ca051.md | 100 -- .../6569f770fd7dc443d6293095.md | 101 -- .../6569f7c7f6954944d207775f.md | 104 -- .../6569f7f2fa74c045e95676ac.md | 103 -- .../6569fa5b9d507748bf4ec722.md | 104 -- .../6569fa85d8f9ed49c8dfb37d.md | 115 --- .../6569fabbfe1c094ad838ec4c.md | 108 --- .../6569fbbfee025a4e850b6eaf.md | 106 --- .../6569fc21837cab5029d82e26.md | 128 --- .../6569fc63a404c8519d918095.md | 112 --- .../6569fca3cd7a9f52f322a298.md | 113 --- .../6569fd01dab2ea547d98f093.md | 124 --- .../6569fd352879475599d0ec66.md | 115 --- .../6569fd6d3cb95856c9ed2190.md | 125 --- .../6569fdc59fe1b658bc9e23a4.md | 118 --- .../6569fe0fe5b5425a1bb1f534.md | 246 ----- .../66068fb0bfddba2b7977eb60.md | 10 +- .../660ac35d55a15d81afdedd76.md | 7 +- .../658212ba98182f3e855e85f9.md | 2 +- .../65821c1c40ccac44adf38e6b.md | 4 +- .../65821fcc010c3245718f2a06.md | 16 +- .../65822308ded1ba4632f66aa3.md | 16 +- .../658225d560369446ece5518b.md | 14 +- .../6582267ef39f5047411c1743.md | 2 +- .../65822773f4c60a479ec89f66.md | 16 +- .../65822934c8a0454803e3ef12.md | 12 +- .../65822bd82d708c4895080c35.md | 7 +- .../65823040bdb32949d4c1a96f.md | 8 +- .../6582324b5d37fe4b622bc3c0.md | 14 +- .../65823634a308cb4d6bcc5fa6.md | 4 +- .../658238f7604f154ea9a23e1e.md | 6 +- .../65823b0167fd894f4a7ea60a.md | 14 +- .../65823bbbdb4eaa4f9d20a0fb.md | 23 +- .../65823cfc74aa564ffc460489.md | 25 +- .../65823dde36392f505a39f7c7.md | 13 +- .../65823e87c9741750a22085a7.md | 2 +- .../65823ff0d4b991510fade1a8.md | 21 +- .../65824111a09164518320088d.md | 29 +- .../658244fdf4b0265334711664.md | 11 +- .../65824561f3478e5371a33ae5.md | 11 +- .../658246c28575d653d1f89b59.md | 24 +- .../65824872894f59546e3084e2.md | 19 +- .../65824a1b16631c54fa524154.md | 17 +- .../65824c7b4e2da85597693dcf.md | 43 +- .../65824dfdb6815d563b2d3256.md | 21 +- .../6582507654b3ed5712341382.md | 35 +- .../658252f6b1526d57b103d48a.md | 17 +- .../658254db6e12485a48130f57.md | 14 +- .../658255d5f955175b270f251d.md | 21 +- .../6582575b8089f85b8b92d7c8.md | 27 +- .../658258c0e5fbe85c14c060cf.md | 31 +- .../65825a9520a0795c8afbef50.md | 19 +- .../65825b758fe85a5cebabc8c5.md | 27 +- .../65825cda2668995d5168e37c.md | 35 +- .../65825e96b5db5f5dee6bf57c.md | 13 +- .../6582601b2987045e8e7da994.md | 25 +- .../6582622cb6c11a5f4c5d79b4.md | 21 +- .../6582687859366a618424d84b.md | 31 +- .../65826a6e9d189a623141c726.md | 15 +- .../65826af5b226a5628aa154b1.md | 61 +- .../66314f2add0a8b57da5d6d91.md | 4 +- .../656883980318048fb11a6e3b.md | 32 - .../656884439d4d7d929d58669d.md | 43 - .../65560f9380be92226084ef46.md | 43 - .../65560ffdb7d05d248e012280.md | 29 - .../65561022956c1024e7184add.md | 38 - .../655a10e4a620fc091ba43b3d.md | 32 - .../655a1188d6cfbb0a3ec63c57.md | 36 - .../655a11eb4e54b60acd6bd641.md | 41 - .../655a12c2ab0bcc0c2ba30e16.md | 35 - .../655a132b56e0160cfeca08d4.md | 37 - .../655a13744e82580d7ee3073d.md | 37 - .../655a13aa8af2510de51f2e1c.md | 47 - .../655a142ae611b30e5df0ac16.md | 79 -- .../655a1479ba7e7c0ee6c1acdd.md | 49 - .../655a14a6fe4cd50f38d01dd3.md | 64 -- .../655a151cc6041f0ff7d24ded.md | 48 - .../655a153a6b362d103e125028.md | 53 -- .../655a1564f3aa8210938cdf68.md | 51 - .../655a158c7e80c810f6eff1e1.md | 53 -- .../655a15b683445611528cccf1.md | 48 - .../655a167ea3e96512bf1343ce.md | 62 -- .../655a16db1ccc5e132b5bc44d.md | 50 - .../655a173e5b8adc13b761ed74.md | 59 -- .../655a194276dfa11460f7b5e3.md | 65 -- .../655a1a6d8c44db154b00c909.md | 63 -- .../655a227e57aabb25d1f9c987.md | 59 -- .../655a44442b60ee5a28df8ee5.md | 75 -- .../655a452d40556e5c25e4aac8.md | 63 -- .../655a45c52fa3ea5ece3034c7.md | 61 -- .../655a4614304cd36031cb4e75.md | 62 -- .../655a46aa8e10c26218c5034c.md | 62 -- .../655a46fce0ce5a638c180e36.md | 74 -- .../655a4761e1a40065fc4d3712.md | 66 -- .../655a47a9404d856743c7f529.md | 73 -- .../655a482dfc92896901b9c97e.md | 82 -- .../655a489d83b1996bd537b153.md | 71 -- .../655a48da2c25656d2f7bab4d.md | 79 -- .../655a493ab909a96f7c316cd5.md | 80 -- .../655a4ffc762d117470b94e3b.md | 80 -- .../655a50f992ba7177aff2b718.md | 83 -- .../655a515f4b85ce79464fe5e8.md | 78 -- .../655a51a705c97d7a9294ab2a.md | 82 -- .../655a51ff908edc7c12c3a92c.md | 84 -- .../655a523d4bbc8b7d3848d7dd.md | 83 -- .../655a52bca925967fa2336190.md | 87 -- .../655a536e99be288210f01451.md | 89 -- .../655a5489c62889851c60ff4b.md | 87 -- .../655a54cd88e33b8646c67e16.md | 88 -- .../655a54fd97ada88722fa5c8b.md | 87 -- .../655a552337ee62882fdeee79.md | 89 -- .../655a557104bb878962e2ae95.md | 96 -- .../655a5607eec63b8c2b1d7087.md | 91 -- .../655a5637ad283d8d24dd49de.md | 104 -- .../655a56a6a1168a8f201ba666.md | 103 -- .../655a56dc4749dc906fac6802.md | 104 -- .../655a577302a8a791ed62e8d9.md | 94 -- .../655a57bf1d702b936f788b70.md | 102 -- .../655a580da8b2419496c88f61.md | 104 -- .../655a585b87885d962f715a10.md | 110 --- .../655a58897968829714d6e359.md | 108 --- .../655a58b2951601981fb893c8.md | 109 --- .../655a5908085cdf99b7630646.md | 110 --- .../655a59607b0d2e9b0f5d69e5.md | 206 ---- .../65c646d4148ae3b2d1cbcac4.md | 2 +- .../arithmetic-formatter.md | 248 ----- .../budget-app.md | 887 ------------------ .../polygon-area-calculator.md | 869 ----------------- .../probability-calculator.md | 300 ------ .../time-calculator.md | 582 ------------ .../5f33071498eb2472b87ddee4.md | 2 +- .../5dc24073f86c76b9248c6ebb.md | 4 +- .../5dfa30b9eacea3f48c6300ad.md | 2 +- .../5dfb6250eacea3f48c6300b2.md | 6 +- .../5efada803cbd2bbdab94e332.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 30 +- .../646ceae4d57c214e6b03576c.md | 85 -- .../646ceb843412c74edee27a79.md | 4 +- .../646cecc9eb5c4f4f73dafd07.md | 4 +- .../646cef0c2b98915094df7099.md | 4 +- .../646cf1206cac5f51804f49cf.md | 4 +- .../646cf2249f02ca5233d9af7c.md | 4 +- .../646cf48d8f8e1f535a1821d3.md | 4 +- .../646cf6cbca98e258da65c979.md | 6 +- .../646cf88aa884405a11ea5bcc.md | 4 +- .../646cfc2b8e6fe95c20a819d5.md | 6 +- .../646cfd853634255d02b64cc1.md | 4 +- .../646cfde6ac612e5d60391f50.md | 6 +- .../646dd556d524bc61c0139bd6.md | 4 +- .../646dd6f9caa862627dd87772.md | 4 +- .../646dd7cfd0cfac630c1dd520.md | 4 +- .../646dd8c79ec23463a3d0e356.md | 4 +- .../646dd9d9a729916460724f16.md | 4 +- .../646ddab8afd73764f5241bbf.md | 4 +- .../646ddb61ff08366570cc5902.md | 6 +- .../646ddd3f9f97a0667b964bdb.md | 32 +- .../646dddfb3a301c66ec513c56.md | 146 --- .../646dde7dc20dc167489faa69.md | 4 +- .../646ddf888632fa67f1180940.md | 6 +- .../646de5dc8988076a1d992afd.md | 4 +- .../646de6a97b50a86ac487de86.md | 4 +- .../646de7b64467e96b7d35b5cd.md | 4 +- .../646de8478d6f796bfbdccfb2.md | 4 +- .../646de8d204a3426c7d184372.md | 4 +- .../646dea1c98c2426d43a705c3.md | 4 +- .../646deb169847f86df0f95bfc.md | 4 +- .../646dec359bef3b7811fba5a6.md | 4 +- .../646dedbcba062079128b2ecc.md | 4 +- .../646def5e863abf7a14501421.md | 4 +- .../646df03c8f79337ab46f148b.md | 4 +- .../646df0cf26413a7b35e4b8b3.md | 4 +- .../646df1d1aa4ae57bdf1869c4.md | 8 +- .../646dffd8ce9ac77ec1906f2e.md | 4 +- .../646f0417322c0e04983a5149.md | 6 +- .../646f08293804a30685533c6f.md | 6 +- .../646f09293eb3230723a62f77.md | 4 +- .../646f0c9a1e3360092d1bbd33.md | 6 +- .../646f0ce5737243098ad6e494.md | 4 +- .../646f0ef13604420a8744f7d4.md | 4 +- .../646f0f7c5933560af8e7e380.md | 4 +- .../646f102bf87b350b593baa72.md | 4 +- .../646f107abb89d00bb99f387a.md | 4 +- .../646f12da0b4c5d0ca162834a.md | 4 +- .../646f135eab69d90d0c6d4e9b.md | 4 +- .../646f159b2cffb21150b927cb.md | 4 +- .../646f164bf100dd11d226161f.md | 4 +- .../646f1764e2f1d212ba9785a7.md | 4 +- .../646f1802a09a171332e14630.md | 4 +- .../646f4d6c42dc5f214f4e7444.md | 4 +- .../646f4e46e81f7021d5fd9c1d.md | 4 +- .../646f4f6a14e3c522d130a0d2.md | 6 +- .../646f4fe12b7985232bf475a5.md | 4 +- .../646f507e4d1cd323f17db4fc.md | 4 +- .../646f516dbfc1342495515625.md | 4 +- .../6477062778c85972eb648030.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 4 +- .../64a26ac5540c5493f4641f10.md | 4 +- .../64a3bcbc83e574b58c8ed048.md | 4 +- .../build-a-pokemon-search-app.md | 77 ++ .../635091f8dbf554575fb5aa0c.md | 130 --- .../6443b612a30b3601404c9b61.md | 285 ------ .../6443c4d659395d0175cd121a.md | 286 ------ .../6443c7e97bcc4401bc99d87b.md | 287 ------ .../6443cc3ed4a11e02329c4c0e.md | 290 ------ .../6443ce08c89b250267c4225a.md | 291 ------ .../6443cf1cca1fbb02a8a6e46e.md | 293 ------ .../6443d0428d7c2402e9d78709.md | 309 ------ .../6443d6ab21742c031bea7778.md | 311 ------ .../6443fbba1e9df4038f5af689.md | 309 ------ .../6444ec416a1fe1017e517bd8.md | 307 ------ .../6444ed90ff671201bf007af6.md | 321 ------- .../6444f08fae25f201f10083a9.md | 308 ------ .../66323433f931ca32305a11f5.md | 119 +++ .../663250b42513ef5975599c49.md | 121 +++ .../663255f28c59315db74d137b.md | 125 +++ .../66325a250690a3612c1db0f6.md | 122 +++ .../663260de72634166b0800fe9.md | 133 +++ .../66326637df347d6ae9928853.md | 130 +++ .../66326913b729e16dd0127a36.md | 237 +++++ .../6650c9a94d6e13d14a043a69.md | 119 +++ .../62a115879a6d51422652cbfc.md | 2 +- .../62a1166ed9a56d439c0770e7.md | 2 +- .../62a23c1d505bfa13747c8a9b.md | 2 +- .../62a23cb9bc467a147516b500.md | 2 +- .../62a23d1c5f1c93161f3582ae.md | 2 +- .../62a2401b9842721796b72850.md | 2 +- .../62a24068d60b671847d1d4e2.md | 2 +- .../62a2409897ec621942234cf6.md | 2 +- .../62a240c67f3dbb1a1e6d95ee.md | 2 +- .../62a24128d5e8af1b47ad1aab.md | 2 +- .../62a24190868ca51c0b6e83c7.md | 2 +- .../62a241df03c1f61ce936f5d9.md | 2 +- .../62a3a488b24fb32b91155d56.md | 58 -- .../62a3a7e4f1060e2fc5ffb34b.md | 14 +- .../62a3b3eab50e193608c19fc6.md | 2 +- .../62a3b41c9494f937560640ab.md | 2 +- .../62a3b49686792938718b90d3.md | 62 -- .../62a3b506dbaead396f58a701.md | 88 -- .../62a3b5843544ce3a77459c27.md | 62 -- .../62a3b79d520a7f3d0e25afd6.md | 2 +- .../62a3bb9aeefe4b3fc43c6d7b.md | 2 +- .../62a3bec30ea7f941412512dc.md | 2 +- .../62a3c0ab883fd9435cd5c518.md | 2 +- .../62a3c2fccf186146b59c6e96.md | 2 +- .../62a3c4a0e52767482c5202d4.md | 2 +- .../62a3c668afc43b4a134cca81.md | 2 +- .../62a3c8bf3980c14c438d2aed.md | 2 +- .../62a3c91a2bab1b4d6fabb726.md | 2 +- .../62a3cdb11478a34ff4a6470d.md | 2 +- .../62a3cfc8328d3351b95d4f61.md | 2 +- .../62a7beb1ad61211ac153707f.md | 2 +- .../62a7bf06d2ad9d1c5024e833.md | 2 +- .../62a7bfabe119461eb13ccbd6.md | 2 +- .../62a7bfd9179b7f1f6a15fb1e.md | 2 +- .../62a7c011eef9fb2084b966db.md | 2 +- .../62a7c071219da921758a35bb.md | 2 +- .../62a7c23e6b511f22ed71197a.md | 2 +- .../62a7cc99577fbf25ee7a7d76.md | 2 +- .../62a8a929e4260d08093756d2.md | 2 +- .../62a8a9d876b2580943ba9351.md | 2 +- .../62a8aa98a8289d0a698eee1d.md | 196 ---- .../62a8ab0e27cbaf0b54ba8a42.md | 2 +- .../62a8ac194679e60cb561b0a8.md | 2 +- .../62a8ad8e01d7cb0deae5ec66.md | 2 +- .../62a8ade9b2f5b30ef0b606c2.md | 2 +- .../62a8ae85fcaedc0fddc7ca4f.md | 2 +- .../62a8b0b5053f16111b0b6b5f.md | 2 +- .../62a8b1762b7775124622e1a3.md | 2 +- .../62a8b3cc436db8139cc5fc09.md | 2 +- .../62a8b6536156c51500739b41.md | 2 +- .../62a8b711ab7a12161c7d9b67.md | 2 +- .../62a8b9770050d217d2247801.md | 2 +- .../62a8c0c8313e891a15ec23e7.md | 2 +- .../62a8c1154d3ae11aee80353f.md | 2 +- .../62a8c151b23bf21bc7c4fcba.md | 2 +- .../62a8c173949f851c83c64756.md | 2 +- .../62a8c242b25a531f2909e5bc.md | 2 +- .../62a8c2bbbd8aa82052f47c53.md | 2 +- .../62a8c31ec0ec78216a1c36a0.md | 2 +- .../62a8c370ad8c68227137e0bc.md | 2 +- .../62a8c3ebc6c35e23785e1a19.md | 2 +- .../62a8c41ecaf1bd24536129b8.md | 2 +- .../62a8c465fa7b0c252f4a8f0c.md | 2 +- .../62a8c4db0710f3260f867a92.md | 2 +- .../62a8c56247609626fa4a8d6e.md | 230 ----- .../62a8c5db7888af27af23f0dd.md | 2 +- .../62a8c65b75664c28a8e59c16.md | 2 +- .../62a8c6815f5f1a29735efe1b.md | 2 +- .../62a8c7322e42962ad53ad204.md | 2 +- .../62a8c7a59e72c02bb1c717d2.md | 2 +- .../62a8c89e4272512d44fc1c66.md | 2 +- .../62a8c8cee8e5cf2e001789b4.md | 20 +- .../62a8ca22d29fe62f3952bdf5.md | 14 +- .../62a8cb19bd7f8a304e5427a1.md | 4 +- .../62a8cbd1e3595431d5a2b3f1.md | 4 +- .../62a8cce1b0c32c33017cf2e9.md | 10 +- .../62a8ce1dfc990134162b3bd9.md | 12 +- .../62a8ce73d0dce43468f6689c.md | 6 +- .../62a8cf22272d6d35af80d4ac.md | 8 +- .../62a8d0337d7c67377a4a76c6.md | 6 +- .../62a8d08668fa8b38732486e9.md | 6 +- .../62a8d0c4f12c2239b6618582.md | 6 +- .../62a8d0fdf2dad83a92883a80.md | 16 +- .../62a8d143f2a58e3b6d6e9c33.md | 14 +- .../62a8d1c72e8bb13c2074d93c.md | 14 +- .../62a8d2146a3e853d0a6e28ca.md | 10 +- .../62a8d24c97461b3ddb9397c8.md | 8 +- .../62a8d2e2a073be3edb46116f.md | 8 +- .../62a8d31ebbc10e3fe1b28e03.md | 8 +- .../62a8d35660db4040ba292193.md | 8 +- .../62a8d382cd075f4169223e14.md | 12 +- .../62a8d539dc11cb42b5dd7ec8.md | 8 +- .../62a8d61ddfe35744369365b7.md | 12 +- .../62a8d6c7001ebc45350e3d16.md | 8 +- .../62a8d7b8ab568b4649998954.md | 8 +- .../62a8d81f539f004776dd9b1e.md | 8 +- .../62a8dd468debb449b4454086.md | 8 +- .../62a8dd9cdb16324b04cfd958.md | 8 +- .../62a8dfcf7fb1044d2f478fd1.md | 8 +- .../62a8e0d1d0110b4ec421489f.md | 8 +- .../62a8e142f7f0bd4fed898de3.md | 8 +- .../62a8e1dc897df55108bcb5e8.md | 8 +- .../62a8e21398ad61520edb724f.md | 8 +- .../62a8e24c673b075317cc0b09.md | 8 +- .../62a8e271f8e3d1541f9624ad.md | 8 +- .../62a8e35675c18c56354c08cf.md | 8 +- .../62a8e41e2f190c58404dd46e.md | 14 +- .../62a8e45cc600c3591cee671a.md | 10 +- .../62a8e49f4df7af5ae2d7a616.md | 22 +- .../62a8e4dc6a60f85bf256a0cb.md | 20 +- .../62a8ed36d7a7915dfa444ba2.md | 12 +- .../62a8edd05e27cc668051686f.md | 12 +- .../62a8ee154c8946678775c4a4.md | 12 +- .../62a8ee71f018e968a056d369.md | 12 +- .../62a8eec45f77bc69e8775294.md | 12 +- .../62a8eefe2e68b66ac563816b.md | 12 +- .../62a8ef6a52292f6bdca4f6f8.md | 12 +- .../62a8ef8f0c76a46cd221a68c.md | 12 +- .../62a8efb0e3ce826db8daf80f.md | 12 +- .../62a8eff21c0b0f6ebe5b8e38.md | 12 +- .../62a8f06fb318666fef69f91e.md | 12 +- .../62a8f14fe6d1fc72454648c7.md | 12 +- .../62a8f1d5f5ddbf74c07f733b.md | 12 +- .../62a8f20463b324759953edad.md | 18 +- .../62a8f256b813a476cae51f49.md | 14 +- .../62a8f35bde1750791f58773f.md | 14 +- .../62a94114ce0b8918b487390f.md | 14 +- .../62aa1cea594f152ba626b872.md | 14 +- .../62aa1d6736ba262cfa74344b.md | 14 +- .../62aa1d9f535e102e4663e7a6.md | 14 +- .../62aa1e3c7c3d552fb04f0f18.md | 14 +- .../62aa1e8ccd579330e097ce44.md | 14 +- .../62aa1eec891ed731db227a36.md | 14 +- .../62aa1fed3d4e873366ff3131.md | 14 +- .../62aa204c1e1d33348ff09944.md | 18 +- .../62aa20e9cf1be9358f5aceae.md | 18 +- .../62aa2136fc49b836dfedb959.md | 14 +- .../62aa21971e3b743844849985.md | 14 +- .../62aa21ea8d9d9f396b95dd87.md | 14 +- .../62aa226207f33d3ad4c6f546.md | 14 +- .../62aa22aba186563bcbf2c395.md | 20 +- .../62aa234322d4ad3e8bce42cc.md | 16 +- .../62aa2469c77b363fdb4f0e06.md | 16 +- .../62aa252c3b1073415ba2b898.md | 16 +- .../62aa258da314ef42ba0a1858.md | 16 +- .../62aa25fcb5837d43b4d9873d.md | 16 +- .../62aa2626c3c10244b94c787b.md | 12 +- .../62aa264d23cdaa45a20efada.md | 16 +- .../62aa26cca3cd3d46c431e73b.md | 16 +- .../62aa27227399d647e1c37a3c.md | 16 +- .../62aa27560def7048d7b4a095.md | 16 +- .../62aa27c40ca6f04ab8be5fac.md | 16 +- .../62aa28032d863d4bd8058799.md | 388 -------- .../62aa287434dc284cea01157c.md | 386 -------- .../62aa28bbd6323e4dfb3ac43e.md | 386 -------- .../62aa28fb651bf14efa2dbb16.md | 16 +- .../62aa2943669c9d5026af6985.md | 16 +- .../62aa2999ec27ec516655eba6.md | 16 +- .../62aa29d8f8f88152c91350ca.md | 16 +- .../62aa2aec2f09d454253aad6c.md | 16 +- .../62aa2ba9cd881355a6f0a5a8.md | 16 +- .../62b46e3a8d4be31be5af793d.md | 2 +- .../62ba17beef16c563069a65d8.md | 14 +- .../62fc1ee0c5a89717d4785729.md | 2 +- .../62fc20387ef88d1d1998aac5.md | 2 +- .../62fc211760bfc220f4734800.md | 2 +- .../6577ea4f23e3ba1217007bc7.md | 2 +- .../65b2f6acce65b7a69751a090.md | 14 +- .../660880e67dfed9eb6adb7178.md | 2 +- .../66088382bd1422ed8b5309c3.md | 2 +- .../66088621742011f008175e5e.md | 2 +- .../6608b7985f4ba5127cbc401b.md | 2 +- .../6608b8713915f21398ff32e1.md | 2 +- .../6608bee87c43ca194effebdf.md | 2 +- .../662fbead61552e06d30fc048.md | 8 +- .../662fc372da60030ae25b194e.md | 8 +- .../655dc43318591b975cdfe2d8.md | 2 +- .../65606d06666e118ba86162be.md | 2 +- .../65606ed6ea2baca053327e9b.md | 2 +- .../63b6152e6aff882db819fc1e.md | 6 +- .../63b61584def8fa2ebcc259e0.md | 216 ----- .../63bf43be3f969d24d4ed233c.md | 205 ---- .../63bf446945d34d25e6db6e4f.md | 219 ----- .../63bf45ce0dc8d4270760c6d0.md | 240 ----- .../63bf5230bccd1c2f5c13e1ce.md | 6 - .../63bf5cf03b50bf36cfbe94ea.md | 8 +- .../660ee6e3a242da6bd579de69.md | 2 +- .../660f44f10ea40f300b896a5e.md | 26 +- .../660f455b044d3230ed971e98.md | 4 +- .../660f45ccf4ca5c31f253005a.md | 4 +- .../660f46460f9c36330ebc07d8.md | 4 +- .../660f46b9c417a8341729a3ab.md | 4 +- .../660f4774e3e0df35a68bb5f2.md | 4 +- .../660f47afe4c98536715d5fa4.md | 4 +- .../660f487dc0c8fa38084f9754.md | 4 +- .../660f48a419b40238e2b8b4d5.md | 4 +- .../660f48e1d3682f39e81843c4.md | 4 +- .../660f4934fb48f63abd5ae371.md | 4 +- .../660f4990b1caa03b9dc97a43.md | 4 +- .../660f49e32001983c90b75850.md | 4 +- .../660f4a1472f8e63d76162ce5.md | 4 +- .../660f4a83373de83ea101685f.md | 4 +- .../660f4ae5b3924c3fc3373973.md | 4 +- .../660f4b33e2a3364094ecb540.md | 4 +- .../660f4b641290da41b2cf0dd9.md | 4 +- .../660f4c3b01c44743719c99e4.md | 4 +- .../660f4cde8dd305450514a1cb.md | 4 +- .../660f4cffb1459d45e34902d1.md | 4 +- .../660f4de78f775e480ba2e451.md | 4 +- .../660f4e74f7fd3f4a99ac2e50.md | 4 +- .../660f4efcb8068e4cb470dca1.md | 4 +- .../660f4f79e2a82a4e92290f44.md | 4 +- .../660f505d02b2bd513a1c3468.md | 4 +- .../660f50a21fe7645252804f2b.md | 4 +- .../660f5179b3b0ca558f6b4d4f.md | 4 +- .../660f51f1df0a8757934a5796.md | 4 +- .../660f530d6e33d159e1bf4947.md | 12 +- .../660f535ec33a285b33af3774.md | 4 +- .../660f53ad3d39175c5d4335ac.md | 4 +- .../660f540c2176ea5dec01306d.md | 4 +- .../6610bf6fa14d700beed1b109.md | 4 +- .../661483051820c3c1ab4595e0.md | 4 +- .../66458f0a05df478aa627629e.md | 84 ++ .../664599653fcd6e97104f9261.md | 80 ++ .../64e4f01d6c72086e016a8626.md | 340 ------- .../659ebe52d74b132a1d75c891.md | 388 -------- .../63d12fe2a595263e8f5084f7.md | 458 --------- .../63db7f4677d06d7500a13321.md | 3 + .../64007367d54d2a7efbf44fcf.md | 17 +- .../64475c0b61cddb6feaab4e2e.md | 12 +- .../644760f4fb15ce765baebb62.md | 10 +- .../6448ab52a902de04fc56b3fa.md | 8 +- .../6448b2c9aec64c0ecd41573d.md | 8 +- .../6448b4107aadc110a6ab4f65.md | 8 +- .../644a0eadcbccaf1d13c7d137.md | 8 +- .../644a2013b2ceea32c44d09f9.md | 8 +- .../644a37d773b7610ac5ede66e.md | 8 +- .../644b6a23d398bb5f05ef796b.md | 8 +- .../644b6ad4fa8dfd600a9dff2c.md | 8 +- .../644b71f678b5e1687666c88d.md | 8 +- .../644b765b3bf09e6dff5e0931.md | 8 +- .../644b77a563c51f6ff5237b99.md | 8 +- .../644b7ac994d7dd73a61b4fa6.md | 8 +- .../644b82e0dc8e5e7ca47fcd9b.md | 8 +- .../645b5c05986aba539ba6ca03.md | 8 +- .../645b65b681a62f5fa125ff62.md | 8 +- .../645b6693d8e1bf60f2d92e67.md | 8 +- .../645b6c92876e836832538e34.md | 8 +- .../645b6dad50514e69df601df6.md | 8 +- .../645b7f6a575ffc807877a8c6.md | 8 +- .../645b9d56b48971997a8055dd.md | 9 +- .../645b9de38df75b9a5cfc2e85.md | 8 +- .../645b9ea45d3a9a9d711df81a.md | 8 +- .../645c803cad8434791a5f57b6.md | 8 +- .../645c80ee8b65917a24afcb14.md | 8 +- .../645c81579c54a57ae7c1a5f7.md | 8 +- .../645c81683d816b7b3a044143.md | 8 +- .../645c82268b9a8d7c4debd8dc.md | 8 +- .../645c85251dc1827fe4a6c4ce.md | 8 +- .../645c86f92a102d82250ce3e8.md | 8 +- .../645c8a55eca2118650ee3ce3.md | 8 +- .../645c8fe0c9505407650c4ac6.md | 8 +- .../645c9e6cf5c7251f7b3308f6.md | 8 +- .../645ca158fb7fa3237437fbbd.md | 8 +- .../645ca381c8f87f263034954f.md | 9 +- .../645ca5ca11d0d7293e61c6c7.md | 8 +- .../645ca62092c53f29f4ea9bf6.md | 8 +- .../645cb07132281a380223e458.md | 8 +- .../645cb0ce6dc93738b442b0d0.md | 8 +- .../645cb1306eb27a397be7f18c.md | 8 +- .../645cb99035b8f046f1d669e4.md | 8 +- .../645cbad5f77ce948b35cf83e.md | 8 +- .../645cbb5ab1296e49946adb6e.md | 8 +- .../645cc5925f158b5b33e2698f.md | 8 +- .../645ccf7ec9aca267d84b053e.md | 8 +- .../645cd17b061afb6a8cba945a.md | 8 +- .../645cd267410ac06bfcaf0bd4.md | 8 +- .../645cd2b76488fd6cb8d1ae79.md | 8 +- .../645cd4eb6edf6e6f91acabbb.md | 8 +- .../645cd5b506ed8970b7ea953d.md | 8 +- .../645cd65c33bdc871bb72def4.md | 8 +- .../645cd8b7f4d8e27526694448.md | 8 +- .../645ce315efe609814258b0bc.md | 8 +- .../645ce3c80f1c29824f1a8359.md | 8 +- .../645ce4375221138326895726.md | 8 +- .../6461f79f4ea2ef042fb2c0f4.md | 8 +- .../6461fd4c1bc6620aed6435b2.md | 8 +- .../64620068f97fe70ea47a9e75.md | 8 +- .../646203cdc054d012b5d71428.md | 8 +- .../6462060b0a8a2c15726649ec.md | 8 +- .../64620800e0c6ab17f0e31d6d.md | 8 +- .../646463be7341819690797ad2.md | 8 +- .../6464650a962e3d9852713549.md | 8 +- .../64646577f28ade99100a55c3.md | 8 +- .../646467130d7acc9b4e565c42.md | 14 +- .../646467683f25e19bfc9cf9b0.md | 4 +- .../64646bc0e5a60ea131e03f91.md | 4 +- .../64646db2c684b7a3a174a1d0.md | 4 +- .../646477c82475ffaf0c3c0771.md | 4 +- .../64647cf70a4556b5105e65b2.md | 4 +- .../64648534ff5498bee5dceb28.md | 4 +- .../646486adf52652c0ee103aab.md | 4 +- .../64648963e014f8c42a65b83a.md | 4 +- .../64648c3703ad2ec796ab8d1e.md | 4 +- .../64648cf52e1ce1c8c00956ae.md | 4 +- .../6464905afec9efcf7328ce58.md | 4 +- .../646491d2c856afd17c2f380d.md | 4 +- .../646492f5c672c9d32f340c22.md | 4 +- .../646493b7dc53b5d45c9c50fc.md | 4 +- .../64649b243b9cc3ddabacc593.md | 4 +- .../64649c6d77059edf80279a32.md | 4 +- .../64649d2459ad94e0a772fc3f.md | 4 +- .../64649efb555939e30462c79b.md | 4 +- .../64649f91446721e3ff391d88.md | 4 +- .../6464a057702d04e537d56d49.md | 6 +- .../6464a6d98c43acecb8a7867b.md | 4 +- .../6464a9f7d81939f08d04f435.md | 4 +- .../6464aabd17cd45f1d17cfe56.md | 4 +- .../6464ab8c06ea92f30bc548d5.md | 4 +- .../6464abfb6cf778f3cb33d379.md | 4 +- .../6464ad3c9b2e6cf58224cfa9.md | 4 +- .../6464b1384318a5087190950a.md | 4 +- .../6464b25851863b0a119eb7b1.md | 4 +- .../6464b3adeee9310bd37ff636.md | 4 +- .../6464b8ccb1a5d612c2f857d1.md | 4 +- .../6464c6d6698a8027f8c9d6be.md | 8 +- .../663d5bebe2eef6128a0b1e75.md | 6 +- .../working-with-text-question-h.md | 2 +- .../working-with-text-question-i.md | 2 +- .../working-with-text-question-j.md | 2 +- .../problem-84-monopoly-odds.md | 200 ++-- .../656a2a7b05241026c429e3f0.md | 2 +- .../657e0d0037192f3d9e3d5417.md | 2 +- .../dialogue-placeholder.md | 15 - .../657b1ee1de7216896b5b4361.md | 105 --- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655c9a549835a8601764bd0b.md | 2 +- .../dialogue-placeholder.md | 15 - .../65b0dd4e70e9dcf7c402eb8e.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../655699a46134fa74acaf6204.md | 2 +- .../655a9f8d6d3af8538a178166.md | 2 +- .../655b34a4b45a76689cb429c6.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../65a351bd69b0b72d7ed24eb5.md | 2 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../661f629b4c12b93b615653be.md | 14 + .../661f62dcabe3153bebf1f72a.md | 50 + .../661f8cea1f72013d96065104.md | 39 + .../661f8dd25cb5063e427337c9.md | 53 ++ .../661f906d5019b63f27af438c.md | 53 ++ .../661f9142b11c393fa2e77593.md | 53 ++ .../661f92163598134025d84a8e.md | 45 + .../661f92a4f77e0740906355cb.md | 53 ++ .../661f92f280d7f340dcfc56ca.md | 31 + .../661f94a82f94a341819c0c9c.md | 57 ++ .../6620829558e03f4653f58deb.md | 51 + .../6620836572e36e46d688c04c.md | 53 ++ .../66209f7a6550cf489ba9a9cd.md | 50 + .../6620ae52fc918b06f4a8a790.md | 29 + .../6620aeaa6aaa2807531e86f9.md | 50 + .../6620d099d9fdfe0a09652a58.md | 50 + .../6620d3003ddaf50aac1bc76d.md | 54 ++ .../6620d5fa0e60d10ba81bd831.md | 47 + .../6620d6cd9452910c27da19f1.md | 53 ++ .../6620d86f3f8def0d220fe3d8.md | 54 ++ .../6620d9bfd778060e1e264398.md | 45 + .../6620da144418460e75025a66.md | 45 + .../6620da6a9775020ecae448f4.md | 54 ++ .../6620dbe988a71c0f99829974.md | 37 + .../6620dcbedf73a4100939b90d.md | 49 + .../6620de23b04dcb10920f2666.md | 53 ++ .../6620dfcbc189b31168594021.md | 57 ++ .../6620e3abcd0702129df8d7d0.md | 39 + .../6620e4a094f6f213164ef107.md | 41 + .../6620e51c36d18c137b887081.md | 54 ++ .../6620e5c0b65d6913e1d94e8a.md | 53 ++ .../6620e608b5f72b14311595b3.md | 53 ++ .../662229a912046b51dd81b35a.md | 14 + .../662229d4a4690852e430a704.md | 37 + .../66222a1ac43cd953b431e464.md | 39 + .../66222b2a53c6be5671cd5b38.md | 53 ++ .../66222b6f66670e574eedea0d.md | 47 + .../66222be67d3aa258bc576aee.md | 47 + .../66222c85f656035a4b1325f6.md | 59 ++ .../66222e95ac25115f2dc5f171.md | 53 ++ .../66222ef6f67cf4605103f73a.md | 45 + .../66222fe05f1727629efcbeb9.md | 53 ++ .../662230f3b1103a655e612d6c.md | 37 + .../662231495ea4e36644b0a1f3.md | 49 + .../662232980acab86a1f32aed0.md | 53 ++ .../662234053814b36dc0ab9ae5.md | 37 + .../6622346c798d906ee4d31846.md | 67 ++ .../662236f6f07f7775b35ca43d.md | 53 ++ .../6622372ee4a646767edcbfde.md | 37 + .../6623472f50e39ddeccb047c6.md | 14 + .../662347b1bb7b3cdfcccffa57.md | 47 + .../66234815e0a0b2e1967556c1.md | 53 ++ .../66234877415f31e2b8717a91.md | 53 ++ .../66234939088c72e4a35b3608.md | 53 ++ .../662349f0cadfcce6b20889bd.md | 55 ++ .../66234a5dc9c4d8e7dcc629d7.md | 53 ++ .../66234ab7decaffe8ecb8327d.md | 39 + .../66234b28ae877fea2d15571e.md | 53 ++ .../66234b711dab68eafd8bf850.md | 57 ++ .../66234f32cadc5ff3e109d696.md | 53 ++ .../66234fc78749f6f521af89f3.md | 45 + .../662350dc387cd3f81989ba51.md | 53 ++ .../66235136fd7a23f8f802b279.md | 53 ++ .../662351c28974b0faad8607be.md | 53 ++ .../66235f35bef6ef183f7a06ff.md | 45 + .../66235ffab373a11abea1a42c.md | 53 ++ .../662360667ceb071bd3061489.md | 54 ++ .../66236122aafa541e002b61e5.md | 53 ++ .../6623619449c2dc1f62f15ff2.md | 37 + .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../66250fc0d711192eebfff0e9.md | 14 + .../662510c947e06930d2dbab21.md | 47 + .../66251132384f80331831867a.md | 53 ++ .../662511992b96e5344c2ff040.md | 37 + .../6625123129742735c5231dbe.md | 53 ++ .../66251295a284563711fba9ba.md | 47 + .../6625136b87a56a3913122eb5.md | 53 ++ .../662513cfc37d6c3a297b7b94.md | 55 ++ .../662514383f43d53b748dff42.md | 53 ++ .../662514cc5f752c3cfa8f790a.md | 48 + .../662515989f56983f1f2cb10d.md | 29 + .../6625161c74f42b40918e3d40.md | 31 + .../662516a0393cb741cf52e4ab.md | 48 + .../662516f67e575142bcd515dc.md | 29 + .../6625172e28818f43a04d7915.md | 53 ++ .../662517bb095bf344730c6e7a.md | 49 + .../6625182c819dcd464d8a772f.md | 53 ++ .../662519204fa706489bf194d7.md | 45 + .../662519d6e045404a8825ec64.md | 53 ++ .../66251a827166c04c250f8858.md | 53 ++ .../66251b2d50a4454dd7eb4591.md | 65 ++ .../66251b9ca21e8a4f232af061.md | 53 ++ .../66251c216cffc3508cdcc4d9.md | 53 ++ .../66251c6da2ea2b517704971a.md | 53 ++ .../66251cba9059ca525eac8eb7.md | 53 ++ .../66251d38d259e453c729ed73.md | 53 ++ .../66251d83ab861554d81c9001.md | 57 ++ .../66251dd2d2582a55cc4ca988.md | 54 ++ .../66251e6701f1ac574db171fe.md | 39 + .../66251f12b5f14c58d410cd98.md | 53 ++ .../6625ceb55c430866094b40b9.md | 14 + .../6625cee408515366fddbf402.md | 45 + .../6625cf67c35a69684aafd265.md | 53 ++ .../6625cff7d0c95169e5b8fc7d.md | 53 ++ .../6625d0e9ef6f966c3e2d6164.md | 55 ++ .../6625d3af386a1a72d220e20d.md | 53 ++ .../6625d42589aa8173e84c6cac.md | 53 ++ .../6625d472aa9f8074dca7199f.md | 37 + .../6625d4b5b043f075a2e9425d.md | 53 ++ .../6625d54c1eb70c774106c380.md | 57 ++ .../6625d5ad00fc51785d7fb311.md | 53 ++ .../6625d612ad11c279939fb91c.md | 53 ++ .../6625d6554783147a7dbce128.md | 53 ++ .../6625d6b086abb87b8c962955.md | 45 + .../6625d757c9a1667d13c358db.md | 53 ++ .../6625d7e129384c7ec26b2cc3.md | 37 + .../6625d81940f2c57f66bbd17e.md | 53 ++ .../6625d84e92201f802eac3973.md | 39 + .../6625d8bc46b89481625b068b.md | 53 ++ .../6625d910fb77f9826de00b73.md | 53 ++ .../6625d9508854008334d44831.md | 37 + .../6625d987196d2383e359d41f.md | 54 ++ .../6625da09ef6e5b8547626587.md | 37 + .../6625da582aba58863d900bcf.md | 47 + .../6625dc1d103a638a7fd5308b.md | 53 ++ .../6625dc81861c0d8b754a4829.md | 54 ++ .../6625ddee54d1db9090a4800f.md | 14 + .../6625de24962337919e462c20.md | 39 + .../6625deaf1ab4a69314d3125e.md | 53 ++ .../6625dee8ccb83a93da674fca.md | 47 + .../6625df2bb732da94b03089d1.md | 39 + .../6625df8d71b44495cde83d48.md | 53 ++ .../6625dfe17a5dd696cf89cb01.md | 53 ++ .../6625e02aa797a497b69d2c55.md | 45 + .../6625e08130068e98c6c166c6.md | 53 ++ .../6625e0c2e7f616999352aa7b.md | 68 ++ .../dialogue-placeholder.md | 15 - .../66100326d773b61282509e50.md | 14 + .../661003c35e5ba713abd2da6c.md | 45 + .../6610041a61d5ec13feffff07.md | 47 + .../6610056e633ce41466b6c5bc.md | 53 ++ .../661005bbe1801e14c303a57a.md | 55 ++ .../66100646290700150caff732.md | 53 ++ .../661215c06938a71ad4101c93.md | 61 ++ .../661216bbf6d9a51b409172a8.md | 53 ++ .../661216ff45b1871b85f57a1a.md | 38 + .../6612181d89fdfc1c2f44309d.md | 53 ++ .../661218bc905fb61c898221b4.md | 37 + .../66121954a1cde81cd252ef26.md | 53 ++ .../66121a02da620e1d25ff63d4.md | 61 ++ .../66121b3a462fe01da4816b39.md | 53 ++ .../66122a393fd32d2a4876ca95.md | 14 + .../66122a6093ba082abb2cd136.md | 39 + .../66122ab30afc8e2b1f42b78a.md | 59 ++ .../66122b7d6f1f182bb1fe0338.md | 53 ++ .../661253cc9fb5ee2d01a0d6a8.md | 47 + .../661254cf9474ed2da90fec1b.md | 53 ++ .../66125530a1a9e92e0e08d594.md | 61 ++ .../661255c3b6ea612e984a62b8.md | 53 ++ .../66125666f8437c2f3616045e.md | 41 + .../661256fe823f142fb9858beb.md | 53 ++ .../66126744e24b0a31255718a7.md | 53 ++ .../661267c5ac355931ab1f933d.md | 51 + .../6612693507cbd43269ae64e0.md | 53 ++ .../661269c4ccdd4132db7517b8.md | 29 + .../66126a21821998335a86a34b.md | 53 ++ .../66127192c932be37ed0217e7.md | 14 + .../661271c2b16aff3870604148.md | 53 ++ .../6612727ec0a11b390b8e92cb.md | 53 ++ .../6612752978bcc239ae7b60da.md | 45 + .../6612757ffdc16b3a22b08427.md | 45 + .../6612762a058bb43b960e91ca.md | 53 ++ .../66127678c88f183c0312d8e8.md | 57 ++ .../66127755a52efa3c9a73065b.md | 45 + .../661277970c67233d02f138de.md | 47 + .../661278160653ee3d9040ed68.md | 53 ++ .../66127850c4415c3df1b4e99a.md | 63 ++ .../6612792bc77de13e8f2af3ad.md | 53 ++ .../6612797faf03663ef83f4459.md | 39 + .../661279c8d3bf0f3f6f23f21f.md | 53 ++ .../dialogue-placeholder.md | 15 - .../6579c5fb3e65fd9cb85253a5.md | 169 +++- .../6579c82fc81196a43686415a.md | 59 +- .../6579c8d3313c5fa61d25d4ff.md | 57 +- .../6579c96067f16bad8e7e6cba.md | 62 +- .../6579cee11b0bd1cc8bf20829.md | 57 +- .../6579cf3ada08bdcfd5eae689.md | 62 +- .../6579cf81a9cec6d21f872959.md | 59 +- .../6579cfc55663f6d40c4a65e1.md | 62 +- .../6579d002683211d5c7d13ef3.md | 62 +- .../6579d035f49339d7aa16ec74.md | 57 +- .../6579d06801111dd95231e7e5.md | 62 +- .../6579d40e7729a7e393cfcdd3.md | 59 +- .../6579d44bd49d1ae58c2603d4.md | 62 +- .../6579d49319613ee79fe12f7d.md | 57 +- .../6579d4ca0578b4e95f1df60e.md | 62 +- .../6579d4f3afd265eb0db874f7.md | 59 +- .../6579d539b1e5c2ec64484e49.md | 62 +- .../6579d56623c2d8ee0f2bea87.md | 62 +- .../6579d58e434920ef874f2502.md | 14 +- .../6579d62a28ab37f24f6ea8f9.md | 9 +- .../6579d67a4c6a3bf5d55ce3fd.md | 64 +- .../6579d7f5a745c0fac805d356.md | 68 +- .../6579d827ebd50afcacb829fe.md | 61 +- .../6579d84f48c9c2fe53b06de9.md | 57 +- .../6579d86fee9092ffb268f962.md | 57 +- .../6579d89bc117c40111641200.md | 66 +- .../6579d8d24bf33b02f22685ac.md | 62 +- .../6579db53194a7c0f617943ac.md | 57 +- .../6579db734a2b8010c3e92ada.md | 62 +- .../6579db9c67d64e123b19c235.md | 64 +- .../6579dbc2c1fc601436f2676b.md | 59 +- .../6579dbf6a3e8a5161a592169.md | 64 +- .../6579dc4332b86017e39b9c03.md | 181 +++- .../6579dce8bc44981add67eda9.md | 142 ++- .../6579dd420cf6b81db05470f4.md | 57 +- .../6579dd5f2f35b11f3dcd9702.md | 62 +- .../6579dd80bdd49220560f26ad.md | 62 +- .../6579dd9846f35921af1ffe1c.md | 63 +- .../6579ddb17d88c12323aae5b5.md | 60 +- .../6579ddc94db61d2463022da3.md | 64 +- .../6579dde808b24525c95ec2a3.md | 59 +- .../6579de040244fb274179f001.md | 57 +- .../6579de1f43444d2869022c6d.md | 64 +- .../6579de444ec34929dbc6c2ab.md | 59 +- .../6579de58f1da5a2b4c6ea741.md | 62 +- .../6579de73144df42cb2d373ef.md | 62 +- .../6579de90a68c532e08e96f02.md | 57 +- .../6579df1646568c3268b93637.md | 134 ++- .../6579df5f24a43034dbe456f1.md | 124 ++- .../6579dfac25b3e6370956a820.md | 61 +- .../6579dfd504a9ad385a3a4fd9.md | 61 +- .../6579e0385253cd3a7bd44902.md | 60 +- .../6579e08f06692a3c176f3faa.md | 64 +- .../6579e0e6402c813da7e25ca2.md | 66 +- .../6579e102b5a7223f0d0e9fc4.md | 59 +- .../6579e12834045640e90e58bd.md | 59 +- .../6579e13cd2c9ee424eb815df.md | 64 +- .../6579e153639adb43c017f3d3.md | 61 +- .../6579e17ff05c5d451c2e4f35.md | 64 +- .../6579e19be475334667ba4333.md | 58 +- .../6579e1b324902e47dae63c90.md | 66 +- .../6579e1cd6c8b6248fa62ed48.md | 145 ++- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - .../6614abad2657585c6229fb4a.md | 2 +- .../dialogue-placeholder.md | 15 - .../6629cbab2498e4a1d1f592ac.md | 130 ++- .../6629cc728221a1a4a5613320.md | 53 +- .../6629ce1a4f6581a7266d6ca9.md | 65 +- .../6629ce6bffd1efa9c6c57eaa.md | 59 +- .../6629e10635cf1ec412861da1.md | 55 +- .../6629e49677d89dcc9614251c.md | 53 +- .../6629e6f8758adad2ae0894b0.md | 53 +- .../6629e96c186102d8a65bfbb9.md | 53 +- .../662a26c7a3d49b0a4a19a00f.md | 53 +- .../662a2779b2aeb80c10508bf2.md | 82 +- .../662a292bb1622d1012b5b86e.md | 52 +- .../662a2990757239112d74142e.md | 57 +- .../662a2b1f0c9314142ae87955.md | 53 +- .../662a2f2a2c16bf1a9f3609b7.md | 55 +- .../662a304552f2631d63aa7cab.md | 57 +- .../662a30d3f1071a1ef14eefe1.md | 55 +- .../662a35f7eaaa932ab0973d0c.md | 57 +- .../662b5fdf67f4ea087ff7e590.md | 53 +- .../662b718c7709f809559d5806.md | 53 +- .../662b74055c06e60af4f9b976.md | 53 +- .../662b7577212ab40b8534efbf.md | 53 +- .../662b772113dc330c283730f3.md | 52 +- .../662b7d0fda698d0d84ac67f4.md | 62 +- .../662b803fd9ddc00e943e350e.md | 62 +- .../662b81901b178a0fd33f093c.md | 62 +- .../662b82c8d47f8a1076172391.md | 55 +- .../662b83b12cab3910d87fdebc.md | 91 +- .../662b868dab90d512fc912cad.md | 139 ++- .../662b871f32087113511f262a.md | 54 +- .../662b888ba2c1d713f3a05203.md | 55 +- .../662b8975b11107146a49ec58.md | 53 +- .../662e4dc39f884e1d15ed5f7a.md | 55 +- .../662e4f2edbb46a1dc6efc94f.md | 54 +- .../662e50c396d1771e709de60a.md | 63 +- .../662e512b0006a11ed939b21c.md | 40 - .../662e523b4ee2e71f9c3ea9c7.md | 57 +- .../662ef8454ca90123631dfc51.md | 4 +- .../662ef8c53ee35f23bb031313.md | 57 +- .../662efac808e7e024ab2672f2.md | 57 +- .../662efb9464339d2518178b6e.md | 4 +- .../662efc55d552e72591518e31.md | 4 +- .../662efd365564b6260b79b0e9.md | 4 +- .../662efee6946fda26f424c1a5.md | 86 +- .../662effd7a99b2d275f0ff610.md | 57 +- .../662f00bdd41bbe27edf749fa.md | 57 +- .../662f0151b4dc8e284a8554fa.md | 57 +- .../662f0277f7bbb028dbc2c734.md | 57 +- .../662f047a8839a2298e1e8b3e.md | 4 +- .../662f053a70bb3a2a154993c0.md | 4 +- .../662f062232f1962aa082710a.md | 4 +- .../662f074021418e2b24937af7.md | 57 +- .../662f0839522f5e2bb4158b6f.md | 4 +- .../662f095c43dddc2c58d2e61f.md | 57 +- .../662f0b68050ee62d22149718.md | 57 +- .../662f0d350c37f42de48847fe.md | 104 +- .../662f0ea56ef95d3017740a5c.md | 130 ++- .../662f1025a0cbc2307f2ee9a7.md | 57 +- .../662f113e19790531297cec7b.md | 4 +- .../662f12006df30c31b9cb5a3c.md | 4 +- .../662f150f6e708633720c8c52.md | 57 +- .../662f16078a88463405b894c6.md | 57 +- .../662f17bf83ad0234a0261d92.md | 57 +- .../662f18633253ba3511982c4e.md | 66 +- .../662f18dd52d5583574fcb9e0.md | 57 +- .../662f2e4b96f60636d44eb7db.md | 59 +- .../662f31024608f337c0bf53a9.md | 104 +- .../662f327b74cbce38624be994.md | 57 +- .../662f3450de7c2139809fb72b.md | 4 +- .../662f36132e09c33a21645096.md | 66 +- .../662f3815b0798f3ae730a888.md | 66 +- .../662f38df518e713b716c3e2f.md | 66 +- .../662f638a2644e13c7b450cc0.md | 59 +- .../662f63e3af6b793ceb32df9d.md | 57 +- .../662f659f6ad8103db5d73490.md | 59 +- .../662f66ed185bc53e6171be3c.md | 57 +- .../662f67ce5ef6803efa19be3b.md | 57 +- .../662f69e2ea29ba3fd64e66e0.md | 95 +- .../dialogue-placeholder.md | 15 - .../dialogue-placeholder.md | 15 - 12651 files changed, 214325 insertions(+), 270774 deletions(-) delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md delete mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md delete mode 100644 curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md delete mode 100644 curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md delete mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md create mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md delete mode 100644 curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md diff --git a/curriculum/challenges/arabic/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/arabic/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index 3f8e0378ea4..467c3c79250 100644 --- a/curriculum/challenges/arabic/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/arabic/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: Use the s Tag to Strikethrough Text challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/arabic/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/arabic/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index 214fac94d8a..c95407712b3 100644 --- a/curriculum/challenges/arabic/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/arabic/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: Improve Compatibility with Browser Fallbacks challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index 5361b1acf26..82649dab763 100644 --- a/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: تعيين قيمة متغير إلى متغير آخر challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index fd33db48dca..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: الخطوة 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index e2a3b2527d9..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: الخطوة 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index 5d2c2fbd815..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: الخطوة 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index d3dbed113a9..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: الخطوة 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index 05cccf2f188..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: الخطوة 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index d61cfc01b9e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: الخطوة 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index 71d88ee2863..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: الخطوة 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index 6e2d4048246..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: الخطوة 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index 0d3dbf76b8e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: الخطوة 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index a50019dc02f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: الخطوة 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index 94566222037..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: الخطوة 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index 45f4dc93ff6..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: الخطوة 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index 6ca1945c89c..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: الخطوة 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index 1e39f906e89..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: الخطوة 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index 527879367c7..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: الخطوة 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index 98cfe2dd10b..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: الخطوة 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index 11947afbcc5..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: الخطوة 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index dc5936d2231..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: الخطوة 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index 336a2e4d6dd..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: الخطوة 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index 2b6d6731018..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: الخطوة 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index c5256b1e7f3..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: الخطوة 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index e43c8662e6f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: الخطوة 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index 7262472d500..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: الخطوة 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index 9fecbc5bf21..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: الخطوة 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index 05238fb92f3..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: الخطوة 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 4fffae4a37c..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: الخطوة 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index 15e9cc224df..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: الخطوة 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index 1498c36e8fc..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: الخطوة 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index 40dbaabdf5c..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: الخطوة 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index f4a9a6b3860..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: الخطوة 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index 86f6ee034bb..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: الخطوة 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index 491ae3a0326..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: الخطوة 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index 32d9afd0dc0..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: الخطوة 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index cb70e7e1c34..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: الخطوة 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index 43e0ce44d55..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: الخطوة 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index 8079d812174..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: الخطوة 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index 7d603a4b32f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: الخطوة 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index 902004b8c04..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: الخطوة 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 8ab7eaf77e4..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: الخطوة 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index c22b9653ed7..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: الخطوة 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index b5a91b523e7..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: الخطوة 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index 3911b5f36da..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: الخطوة 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index 4e8d81c2a58..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: الخطوة 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index 8237a6c213c..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: الخطوة 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index b30a2b63bb4..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: الخطوة 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index cd782ea0d1c..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: الخطوة 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index 6bc95ace17f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: الخطوة 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index b6efc7d0c87..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: الخطوة 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index 757b31d0d9d..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: الخطوة 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index d894b85065f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: الخطوة 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index 42ab7a30ee0..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: الخطوة 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 6d9b514142b..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: الخطوة 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index ba4f6c64228..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: الخطوة 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index f236ec24ba4..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: الخطوة 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index dc786b1ab24..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: الخطوة 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index 74c7d476a52..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: الخطوة 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index f0849ba93da..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: الخطوة 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index 66e461f0c0c..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: الخطوة 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index 7914bd960f2..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: الخطوة 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index ccec106f37e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: الخطوة 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index 5d6ec640ab3..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: الخطوة 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index 7b449ef10a0..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: الخطوة 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index d20e5d18c5d..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: الخطوة 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index 79177efe1c3..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: الخطوة 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index 5c056df9084..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: الخطوة 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index 56d0796c66e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: الخطوة 66 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index 6e84768b9e3..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: الخطوة 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index d98033431b9..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: الخطوة 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index 3928aec1803..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: الخطوة 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index 9f05bd68e30..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: الخطوة 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index efed32ade6f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: الخطوة 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index a91445efc87..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: الخطوة 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index 80d05b52712..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: الخطوة 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index 102700375f1..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: الخطوة 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index b70d005a00e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: الخطوة 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index b780f373746..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: الخطوة 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index ede3035ed25..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: الخطوة 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index ee72aadd292..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: الخطوة 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index 4547fbb10f0..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: الخطوة 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index 2f621f1db8e..44ec524e5a4 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -13,7 +13,7 @@ Start by defining a function named `add_expense` that takes three parameters: `e # --hints-- -You should declare a function named `add_expense`. +You should use the `def` keyword to declare a function named `add_expense`. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index 77767302c22..c3a240b5e7a 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -7,13 +7,13 @@ dashedName: step-2 # --description-- -A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets `[]`, with each item separated from the following one by a comma. +A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets (`[]`), with each item separated from the following one by a comma. ```py numbers = [1, 2, 3, 4] ``` -Create an empty list named `expenses`. You will use it to store each of your expenses. +Use a pair of square brackets to create an empty list named `expenses`. You will use it to store each of your expenses. # --hints-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index e7b9d97a520..083d3cfbb72 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -7,21 +7,29 @@ dashedName: step-3 # --description-- -The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you can use the `.append()` list method: +The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you'll use the `.append()` list method: ```py my_list = [2, 4, 7] my_list.append(3) ``` -In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. +In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. + +Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. # --hints-- You should have `expenses.append()` in your function. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\)/m) +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append()")`)) }) +``` + +You should not have `pass` in your function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("add_expense").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index 158681e07ff..ad3a7960c64 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -7,7 +7,7 @@ dashedName: step-4 # --description-- -A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces `{}` and they contain key-value pairs separated by commas. Each key is followed by a colon `:` and the value: +A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces (`{}`) and they contain key-value pairs separated by commas. Each key is followed by a colon (`:`) and the value: ```py {'amount': 50.0, 'category': 'Food'} @@ -19,10 +19,20 @@ Create a dictionary with a key `'amount'` and value of the `amount` parameter an # --hints-- -You should have `expenses.append({'amount': amount})` in your function. +You should pass a dictionary as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) +`)) }) +``` + +You should pass `{'amount': amount}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index 9c927745b89..af1515ef25c 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -11,10 +11,20 @@ Add another key-value pair to the dictionary you are appending to the `expense` # --hints-- -You should have `expenses.append({'amount': amount, 'category': category})` in your code. +You should add a second key-value pair to the dictionary you are passing as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*,\s*("|')category\2\s*:\s*category\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) and len(node[0].tree.keys) == 2 +`)) }) +``` + +You should pass `{'amount': amount, 'category': category}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount, 'category': category})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index a9f7ffcc7fc..8adde95da03 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -Start by defining a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. +Next, define a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. Fill the body of your new function with a `pass` statement. diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index df39293ce80..be6e4a44704 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -11,10 +11,22 @@ Inside the `print_expenses` function, create a `for` loop that iterates over eac # --hints-- -You should have `for expense in expenses:` in your `print_expenses` function. Remember to use `pass` within the loop body. +You should create a `for` loop that iterates over `expenses` in your `print_expenses` function. Remember to use `pass` within the loop body. ```js -({ test: () => assert.match(code, /for\s+expense\s+in\s+expenses\s*:/ ) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_iter().is_equivalent("expenses")`)) }) +``` + +You should use `expense` as the loop variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_vars().is_equivalent("expense")`)) }) +``` + +You should have `pass` only inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index 0ddef9fa262..d01d4c27c96 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -9,14 +9,20 @@ dashedName: step-8 Next, you are going to display the details for each expense. -Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. Leave the placeholders empty for now. +Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. # --hints-- -You should have `print(f'Amount: {expense}, Category: {expense}')` in your `for` loop. +You should print `f'Amount: {expense}, Category: {expense}'` in your `for` loop. ```js -({ test: () => assert.match(code, /^\s+print\s*\(\s*f("|')Amount: \{\s*expense\s*\}, Category: \{\s*expense\s*\}\1\s*\)/m) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].has_call("print(f'Amount: {expense}, Category: {expense}')")`)) }) +``` + +You should not have `pass` inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_bodies()[0].has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index d8d50f45262..f4dd0b1e0cd 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -7,7 +7,12 @@ dashedName: step-9 # --description-- -You can access values in a dictionary through its keys. You need to use the bracket notation and include the key between the square brackets: +In Python, an important thing to know is that the same type of quote used to define a string cannot be used inside it. For example, the string `'I'm a string!'` is not valid. To use the single quote inside that string you should either: + +- Escape the quote by prepending a backlash to it: `'I\'m a string!'` +- Or use double quotes to define the string: `"I'm a string!"` (preferred). + +You can access values in a dictionary through its keys. You need to use bracket notation and include the key between the square brackets: ```py my_dict = {'amount': 50.0, 'category': 'Food'} diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index 632490dcadd..589458addc4 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -7,7 +7,9 @@ dashedName: step-10 # --description-- -You will need a function to calculate the total amount of expenses. Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. +You will need a function to calculate the total amount of expenses. + +Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. # --hints-- @@ -21,7 +23,7 @@ You should define a function named `total_expenses`. }) ``` -Your`total_expenses` function should take a single `expenses` parameter. +Your `total_expenses` function should take a single `expenses` parameter. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index 1dda12ed7e7..69077808dc6 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -13,14 +13,22 @@ Lambda functions are brief, anonymous functions in Python, ideal for simple, one lambda x: expr ``` -In the example above, `x` is a parameter to be used in the expression `expr`. Create a `test` variable and assign it a lambda function that takes an `x` parameter and returns `x * 2`. +In the example above, `x` represents a parameter to be used in the expression `expr`, and it acts just like any parameter in a traditional function. `expr` is the expression that gets evaluated and returned when the lambda function is called. + +Create a variable named `test` and assign it a lambda function that takes an `x` parameter and returns `x * 2`. # --hints-- -You should have `test = lambda x: x * 2` in your code. +You should declare a variable named `test`. ```js -({ test: () => assert.match(code,/^test\s*=\s*lambda\s+x\s*:\s*x\s*\*\s*2/m)}) +({ test: () => assert(runPython(`_Node(_code).has_variable("test")`))}) +``` + +You should assign `lambda x: x * 2` to your `test` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_variable("test").is_equivalent("test = lambda x: x * 2")`))}) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index 0131dea35b4..f63e601f577 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -13,9 +13,11 @@ Lambda functions can be valuably combined with the `map()` function, which execu map(lambda x: x * 2, [1, 2, 3]) ``` +The function to execute is passed as the first argument, and the iterable is passed as the second argument. + The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index 78a72e6c1b9..0d904e4d542 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -1,6 +1,6 @@ --- id: 658238f7604f154ea9a23e1e -title: الخطوة 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- @@ -9,7 +9,7 @@ dashedName: step-15 The `sum()` function returns the sum of the items in the iterable which is passed as its argument. You are going to use `sum()` together with `map()` and `lambda` functions to get the total amount of expenses. -For now, make a little test and modify your current `print()` call by passing `sum(map(test, [2, 3, 5, 8]))` as the argument. +For now, make a little test and modify your current `print()` call replacing the `list()` call with a call to the `sum()` function passing it the current `map()` call as the argument. # --hints-- @@ -36,7 +36,7 @@ def total_expenses(expenses): --fcc-editable-region-- test = lambda x: x * 2 -print(map(test, [2, 3, 5, 8])) +print(list(map(test, [2,3,5,8]))) --fcc-editable-region-- expenses = [] diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index 64b6a73d3c3..0c4b5191a9a 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -1,28 +1,22 @@ --- id: 65823b0167fd894f4a7ea60a -title: الخطوة 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- # --description-- -Next, you are going to implement the same logic to the `total_expenses` function. +Next, you are going to implement the same logic within the `total_expenses` function. For now, delete both the `test` function and the `print()` call. # --hints-- -You should delete your `test` variable. +You should delete your `test` variable and the related `print()` call. ```js -({ test: () => assert.notMatch(code, /test\s*=/) }) -``` - -You should delete your `print(sum(map(test, [2, 3, 5, 8])))` call. - -```js -({ test: () => assert.notMatch(code, /print\s*\(\s*sum/) }) +({ test: () => assert.isFalse(runPython(`_Node(_code).has_variable("test")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index 51b16c5a9fe..af93b0e12fc 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -1,27 +1,28 @@ --- id: 65823bbbdb4eaa4f9d20a0fb -title: الخطوة 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- # --description-- -Within your `total_expenses` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the value of the `'amount'` key in the `expense` dictionary. +In the `total_expenses` function, you'll now integrate a lambda function. Replace `pass` with a lambda function that has `expense` as its parameter. + +`expense` is expected to be a dictionary, and your lambda function should return the value of the `'amount'` key in the `expense` dictionary. # --hints-- -You should have `lambda expense: expense['amount']` in your `total_expenses` function. +You should create a `lambda` function that uses the parameter `expense` and returns `expense['amount']` in your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_stmt("lambda expense: expense['amount']")`)) }) +``` + +You should not have `pass` in your `total_expenses` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("total_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index 668346817e2..c06ab93c264 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -1,6 +1,6 @@ --- id: 65823cfc74aa564ffc460489 -title: الخطوة 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- @@ -11,17 +11,22 @@ Now, call `map()` passing your `lambda` function as the first argument and the ` # --hints-- -You should have `map(lambda expense: expense['amount'], expenses)` in your code. +You should call the `map()` function inside the `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("total_expenses").find_calls("map")) == 1`)) }) +``` + +You should pass your `lambda` function as the first argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[0].is_equivalent("lambda expense: expense['amount']")`)) }) +``` + +You should pass the `expenses` list as the second argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index a3b4f19a260..29c09ae0262 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -1,6 +1,6 @@ --- id: 65823dde36392f505a39f7c7 -title: الخطوة 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- @@ -11,17 +11,10 @@ Finally, pass your `map()` call to the `sum()` function to obtain the total expe # --hints-- -You should return `sum(map(lambda expense: expense['amount'], expenses))` from your `total_expenses` function. +You should call the `sum()` function passing it your current `map()` call as the argument and return the result from your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+sum\s*\(\s*map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_return("sum(map(lambda expense: expense['amount'], expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index 1ffb0108caa..63af9be4151 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -1,6 +1,6 @@ --- id: 65823e87c9741750a22085a7 -title: الخطوة 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index dee332629f9..289c306da64 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -1,27 +1,26 @@ --- id: 65823ff0d4b991510fade1a8 -title: الخطوة 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- # --description-- -Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category`. +Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -You should have `lambda expense: expense['category'] == category` inside the `filter_expenses_by_category` function. +You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) +``` + +You should not have `pass` inside the `filter_expenses_by_category` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index acdf5739f36..fc8cab1fff0 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -1,6 +1,6 @@ --- id: 65824111a09164518320088d -title: الخطوة 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- @@ -13,23 +13,30 @@ The `filter()` function allows you to select items from an iterable, such as a l filter(my_function, my_list) ``` -`filter()` returns an iterator in which the elements of `my_list` are included, for which `my_function` returns `True`. An iterator is a special object that enables you to iterate over the elements of a collection, like a list. +`filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. + +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. # --hints-- -You should have `filter(lambda expense: expense['category'] == category, expenses)` in your `filter_expenses_by_category` function. +You should call `filter()` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")) == 1`)) }) +``` + +You should pass `lambda expense: expense['category'] == category` as the first argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[0].is_equivalent("lambda expense: expense['category'] == category")`)) }) +``` + +You should pass `expenses` as the second argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index d87b53fc194..f0f6c12e365 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -1,6 +1,6 @@ --- id: 658244fdf4b0265334711664 -title: الخطوة 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- @@ -14,14 +14,7 @@ Finally, return the result of the `filter()` call. You should return the result of the `filter()` call from your `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_return("filter(lambda expense: expense['category'] == category, expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index 6173f220ff5..cae351eee31 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -1,6 +1,6 @@ --- id: 65824561f3478e5371a33ae5 -title: الخطوة 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- @@ -19,6 +19,8 @@ You should define a function named `main()` without parameters. ({ test: () => assert(runPython(` import inspect inspect.isfunction(main) + sig = str(inspect.signature(main)) + sig == '()' `)) }) ``` @@ -26,12 +28,7 @@ You should define a function named `main()` without parameters. You should move the `expenses` list inside the `main()` function body. ```js -({ test: () => assert(runPython(` - import inspect - sig = str(inspect.signature(main)) - sig == '()' - `)) -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_body().is_equivalent("expenses = []")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 5365efab11e..23b116aea50 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -1,6 +1,6 @@ --- id: 658246c28575d653d1f89b59 -title: الخطوة 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- @@ -18,30 +18,16 @@ Below the `expenses` list, create a `while` loop. Use `True` for the condition, # --hints-- -You should have `while True:` in your `main()` function. +You should create a `while` loop using `True` as the condition within your `main()` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+while\s+True\s*:/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_conditions()[0].is_equivalent("True")`)) }) ``` -You should have `print('\nExpense Tracker')` in your `while` loop. +You should print `'\nExpense Tracker'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')\\nExpense\s*Tracker\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print")[0].is_equivalent("print('\\\\nExpense Tracker')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index c3fbd93028a..150c7896f1d 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -1,6 +1,6 @@ --- id: 65824872894f59546e3084e2 -title: الخطوة 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- @@ -9,21 +9,18 @@ dashedName: step-26 The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. -After the `print()` call, add another one to print the string `'1. Add an expense'`. +After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. # --hints-- -You should have `print('1. Add an expense')` in your `while` loop. +You should print `'1. Add an expense'` within your `while` loop after the existing `print()` call. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')1\.\sAdd\san\sexpense\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index a066acf12fc..a557268c2db 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -1,6 +1,6 @@ --- id: 65824a1b16631c54fa524154 -title: الخطوة 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- @@ -11,17 +11,14 @@ Next, add another `print()` call and pass the string `'2. List all expenses'`. # --hints-- -You should have `print('2. List all expenses')` in your `while` loop. +You should print `'2. List all expenses'` in your `while` loop after the existing `print()` calls. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')2\.\sList\sall\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index e9becb9a2af..662e4d59211 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -1,53 +1,44 @@ --- id: 65824c7b4e2da85597693dcf -title: الخطوة 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- # --description-- -Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. +Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. Keep adding the `print()` calls in order. # --hints-- You should have `print('3. Show total expenses')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')3\.\sShow\stotal\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('4. Filter expenses by category')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')4\.\sFilter\sexpenses\sby\scategory\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('5. Exit')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')5\.\sExit\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')", "print('5. Exit')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index ce6b596d73b..6c5f7e20351 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -1,6 +1,6 @@ --- id: 65824dfdb6815d563b2d3256 -title: الخطوة 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- @@ -13,17 +13,18 @@ Inside your `while` loop, call the `input()` function passing the string `'Enter # --hints-- -You should have `choice = input('Enter your choice: ')` in your `while` loop. +You should declare a variable named `choice` within your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+choice\s*=\s*input\s*\(\s*("|')Enter\syour\schoice:\s\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].has_variable("choice") +`)) }) +``` + +You should assign the result of the `input()` function, with the string `'Enter your choice: '` as its argument, to your `choice` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_variable("choice").is_equivalent("choice = input('Enter your choice: ')") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 8fb74cb73de..8f20aa4cf58 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -1,6 +1,6 @@ --- id: 6582507654b3ed5712341382 -title: الخطوة 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- @@ -15,30 +15,27 @@ Inside the `if` statement body, declare a variable `amount` and assign it an emp # --hints-- -You should have `if choice == '1':` in your `while` loop: +You should create an `if` statement that checks if `choice` is equal to `'1'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[0] +cond.is_equivalent("choice == '1'") or cond.is_equivalent("'1' == choice") +`)) }) ``` -You should have `amount = input()` in your `if` statement body: +You should declare a variable named `amount` in your `if` statement body. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("amount") +`)) }) +``` + +You should assign an empty `input()` call to your `amount` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input()") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index dabaf1edfe4..15f326cb257 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -1,6 +1,6 @@ --- id: 658252f6b1526d57b103d48a -title: الخطوة 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- @@ -13,17 +13,11 @@ Pass the string `'Enter amount: '` to your empty `input()` call, so you can stor # --hints-- -You should have `amount = input('Enter amount: ')` in your `if` statement. +You should pass `'Enter amount: '` to the `input()` call assigned to the `amount` variable. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*("|')Enter amount:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input('Enter amount: ')") +`)) }) ``` # --seed-- @@ -44,7 +38,6 @@ def total_expenses(expenses): def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) ---fcc-editable-region-- def main(): expenses = [] while True: @@ -56,7 +49,7 @@ def main(): print('5. Exit') choice = input('Enter your choice: ') - +--fcc-editable-region-- if choice == '1': amount = input() --fcc-editable-region-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index 788bc745c47..275d3f75aac 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -1,6 +1,6 @@ --- id: 658254db6e12485a48130f57 -title: الخطوة 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- @@ -13,17 +13,11 @@ Pass `input('Enter amount: ')` to the `float()` function. # --hints-- -You should have `amount = float(input('Enter amount: '))` in your `if` statement. +You should pass `input('Enter amount: ')` to the `float()` function in the assignment of `amount`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = float(input('Enter amount: '))") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index a855e60dc75..0249ed79c87 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -1,27 +1,26 @@ --- id: 658255d5f955175b270f251d -title: الخطوة 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- # --description-- -Inside your `if` statement, create a variable `category` to store the expense category. Assign it `input('Enter category: ')`. +Inside your `if` statement, create a variable named `category` to store the expense category. Assign it a call to `input()` and use the `'Enter category: '` as the argument. # --hints-- -You should have `category = input('Enter category: ')` in your `if` statement. +You should declare a variable named `category` in your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("category")`)) }) +``` + +You should assign `input('Enter category: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("category").is_equivalent("category = input('Enter category: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index a431060e224..fd25bf41ee6 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -1,13 +1,13 @@ --- id: 6582575b8089f85b8b92d7c8 -title: الخطوة 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- # --description-- -After getting the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. +Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. @@ -17,17 +17,22 @@ After getting the `amount` and `category` using `input()`, call the `add_expense # --hints-- -You should have `add_expense(expenses, amount, category)` in your `if` statement. +You should call the `add_expense()` function within your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)\s*add_expense\s*\(\s*expenses\s*,\s*amount\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_calls("add_expense")) == 1`)) }) +``` + +You should pass three arguments to your `add_expense()` call: `expenses`, `amount`, and `category`. The order matters. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_call("add_expense(expenses, amount, category)")`)) }) +``` + +Your `add_expense()` call should come after the assignment of `amount` and `category`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].is_equivalent("amount = float(input('Enter amount: '))\\ncategory = input('Enter category: ')\\nadd_expense(expenses, amount, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index 5042ffa6bc1..7ca152b9bde 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -1,42 +1,31 @@ --- id: 658258c0e5fbe85c14c060cf -title: الخطوة 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- # --description-- -To list all expenses, you can use an `elif` statement after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. +To list all expenses, you can use an `elif` clause after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. -Create an `elif` statement to check if the user's choice equals the string `2`. Inside the `elif` statement, print the string `'\nAll Expenses:'`. +Create an `elif` clause to check if the user's choice equals the string `'2'`. Inside the `elif` clause, print the string `'\nAll Expenses:'`. # --hints-- -You should have `elif choice == '2':` after your `if` statement. +You should create an `elif` clause that checks that `choice` is equal to `'2'` after your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[1] +cond.is_equivalent("choice == '2'") or cond.is_equivalent("'2' == choice") +`)) }) ``` -You should have `print('\nAll Expenses:')` inside your `elif` statement. +You should print `'\nAll Expenses:'` inside your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index 91de67ae8fd..0bc3402cf58 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -1,6 +1,6 @@ --- id: 65825a9520a0795c8afbef50 -title: الخطوة 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- @@ -11,17 +11,16 @@ After the `print()` call, call the `print_expenses` function to display all the # --hints-- -You should have `print_expenses(expenses)` in your `elif` statement. +You should call the `print_expenses()` function within your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)\s*print\s*_expenses\s*\(\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].find_calls("print_expenses")) == 1`)) }) +``` + +You should pass the `expenses` list as the argument to your `print_expenses()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print_expenses(expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index c58ee0d8bb9..6c1297bc068 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -1,6 +1,6 @@ --- id: 65825b758fe85a5cebabc8c5 -title: الخطوة 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- @@ -13,30 +13,19 @@ If it's true, it means the user wants to see the total expenses. So call `print( # --hints-- -You should have `elif choice == '3':` in your code. +You should create an `elif` clause that checks if `choice == '3'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert.match(function_body, /\s+elif\s+choice\s*==\s*("|')3\1\s*:/); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[2] +cond.is_equivalent("choice == '3'") or cond.is_equivalent("'3' == choice") +`)) }) ``` -You should have `print('\nTotal Expenses: ', total_expenses(expenses))` in your `elif` statement. +You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')3\1\s*:\s*print\s*\(\s*("|')\\nTotal\sExpenses:\s\2\s*,\s*total_expenses\s*\(\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[2].has_call("print('\\\\nTotal Expenses: ', total_expenses(expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index 929a9ff03cc..676b0ec42f7 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -1,40 +1,35 @@ --- id: 65825cda2668995d5168e37c -title: الخطوة 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- # --description-- -Create another `elif` statement that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. +Create another `elif` clause that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. # --hints-- -You should have `elif choice == '4':` in your code. +You should create an `elif` clause that checks if `choice == '4'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[3] +cond.is_equivalent("choice == '4'") or cond.is_equivalent("'4' == choice") +`)) }) ``` -You should have `category = input('Enter category to filter: ')` in your new `elif` statement. +You should declared a variable named `category` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("category")`)) }) +``` + +You should assign `input('Enter category to filter: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("category").is_equivalent("category = input('Enter category to filter: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index ae85c9f3a43..d354cb667cb 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -1,6 +1,6 @@ --- id: 65825e96b5db5f5dee6bf57c -title: الخطوة 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- @@ -11,17 +11,10 @@ After getting the category, print the following f-string `f'\nExpenses for {cate # --hints-- -You should print `f'\nExpenses for {category}:'` inside the `elif` statement. +You should print `f'\nExpenses for {category}:'` after the assignment of `category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index 7707278e10a..669de4ae215 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -1,6 +1,6 @@ --- id: 6582601b2987045e8e7da994 -title: الخطوة 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- @@ -11,17 +11,22 @@ After your `print()` call, you need to filter the expenses and print the filtere # --hints-- -You should have `expenses_from_category = filter_expenses_by_category(expenses, category)` in your `elif` statement. +You should declare a variable named `expenses_from_category` in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("expenses_from_category")`)) }) +``` + +You should call `filter_expenses_by_category()` passing `expenses` and `category` as the arguments and assign it to your `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("expenses_from_category").is_equivalent("expenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) +``` + +Your `expenses_from_category` variable should come after the `print()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index d0210c1333b..4801aa6d338 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -1,27 +1,26 @@ --- id: 6582622cb6c11a5f4c5d79b4 -title: الخطوة 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- # --description-- -Still within the `elif` statement, pass `expenses_from_category` iterator to a `print_expenses` call. +Still within the `elif` clause, pass the `expenses_from_category` iterator to a `print_expenses` call. # --hints-- -You should have `print_expenses(expenses_from_category)` in your code. +You should call `print_expenses()` passing `expenses_from_category` as the argument in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)\s*print_expenses\s*\(\s*expenses_from_category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_call("print_expenses(expenses_from_category)")`)) }) +``` + +Your `print_expenses()` call should come after the `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)\\nprint_expenses(expenses_from_category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index e7a5db3fde5..911a95cf962 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -1,42 +1,31 @@ --- id: 6582687859366a618424d84b -title: الخطوة 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- # --description-- -To provide a way to exit the program, use another `elif` statement to check if `choice` equals the string `'5'`. +To provide a way to exit the program, use another `elif` clause to check if `choice` equals the string `'5'`. -Inside the new `elif` statement, print the string `'Exiting the program.'` to show that the program is terminating its execution. +Inside the new `elif` clause, print the string `'Exiting the program.'` to show that the program is terminating its execution. # --hints-- -You should have `elif choice == '5':` in your code. +You should create an `elif` clause that checks if `choice == '5'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4] +cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice") +`)) }) ``` -You should print `'Exiting the program.'` in your new `elif` statement. +You should print `'Exiting the program.'` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:\s*print\s*\(\s*("|')Exiting\sthe\sprogram.\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 9e6f1de548d..712c3072018 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -1,27 +1,20 @@ --- id: 65826a6e9d189a623141c726 -title: الخطوة 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- # --description-- -Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` statement. +Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` clause. # --hints-- -You should have a `break` statement inside your last `elif`. +You should have a `break` statement after the `print()` call inside your last `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+break/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].is_equivalent("print('Exiting the program.')\\nbreak")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index e75ac1eaf64..f2fec123e71 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -1,13 +1,15 @@ --- id: 65826af5b226a5628aa154b1 -title: الخطوة 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- # --description-- -Finally, call your `main()` function, and try the expense tracker program. +Finally, call your `main()` function, and try the expense tracker program in the console. + +With that, the expense tracker project is complete! # --hints-- @@ -74,3 +76,58 @@ def main(): --fcc-editable-region-- ``` + +# --solutions-- + +```py +def add_expense(expenses, amount, category): + expenses.append({'amount': amount, 'category': category}) + +def print_expenses(expenses): + for expense in expenses: + print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') + +def total_expenses(expenses): + return sum(map(lambda expense: expense['amount'], expenses)) + +def filter_expenses_by_category(expenses, category): + return filter(lambda expense: expense['category'] == category, expenses) + + +def main(): + expenses = [] + while True: + print('\nExpense Tracker') + print('1. Add an expense') + print('2. List all expenses') + print('3. Show total expenses') + print('4. Filter expenses by category') + print('5. Exit') + + choice = input('Enter your choice: ') + + if choice == '1': + amount = float(input('Enter amount: ')) + category = input('Enter category: ') + add_expense(expenses, amount, category) + + elif choice == '2': + print('\nAll Expenses:') + print_expenses(expenses) + + elif choice == '3': + print('\nTotal Expenses: ', total_expenses(expenses)) + + elif choice == '4': + category = input('Enter category to filter: ') + print(f'\nExpenses for {category}:') + expenses_from_category = filter_expenses_by_category(expenses, category) + print_expenses(expenses_from_category) + + elif choice == '5': + print('Exiting the program.') + break + +main() + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index 6c2ab7df7ba..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: الخطوة 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index 9a5d81f9d31..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: الخطوة 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index f08d6b9bde1..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: الخطوة 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index 6a361ce83a7..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: الخطوة 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index 735ece8f117..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: الخطوة 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index 5665fd5e2b7..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: الخطوة 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index 0c5af8b9970..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: الخطوة 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index d8433f6e5b4..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: الخطوة 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index bed7b211cff..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: الخطوة 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index 9ddcd83590f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: الخطوة 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index 4fd683b207e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: الخطوة 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index f15adc700d8..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: الخطوة 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 89d22560034..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: الخطوة 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 6060cef6a83..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: الخطوة 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index 08de3cd49bb..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: الخطوة 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index bd07167f17f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: الخطوة 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index 949ef514530..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: الخطوة 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index 2ab6379d76b..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: الخطوة 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index dcaf3347927..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: الخطوة 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index fd61f058acd..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: الخطوة 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index 59a081c6d6c..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: الخطوة 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index 488189b3fa6..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: الخطوة 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index 04fcffcaa5b..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: الخطوة 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Write another `if` statement that checks if the target key is less than the key of the current node. - -Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. - -# --hints-- - -You should write another `if` statement to check if `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -You should return `self._search(node.left, key)` from your new `if` block. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index d8a9662a468..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: الخطوة 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index 41e69882054..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: الخطوة 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index cf170131aa0..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: الخطوة 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 3566a19224a..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: الخطوة 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index 7a9a2b46c47..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: الخطوة 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index 7053df2365f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: الخطوة 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index 05406d47fd2..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: الخطوة 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index f8ea899e41e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: الخطوة 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index 80fadd665cd..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: الخطوة 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index 03770193342..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: الخطوة 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index 7c41af88421..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: الخطوة 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Remember to use the `pass` keyword. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index fed2241f873..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: الخطوة 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index 6f3a2b71549..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: الخطوة 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index 190c1a4ff2d..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: الخطوة 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index 31cfb9fc149..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: الخطوة 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index 09bd90cc8cf..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: الخطوة 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index 31b68b592c0..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: الخطوة 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index d923d043641..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: الخطوة 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index 7df1cb7538e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: الخطوة 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index df68e5bad87..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: الخطوة 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index d6cf609d8d9..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: الخطوة 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index 782dd3fbeb3..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: الخطوة 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index 334e46ed3aa..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: الخطوة 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index bd61b341311..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: الخطوة 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index fbadc8e9284..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: الخطوة 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index 56e81aa9713..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: الخطوة 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index a5f65ee7030..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: الخطوة 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index 17b4f7ef31b..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: الخطوة 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index ee3e86d45e5..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: الخطوة 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index b3f38f45339..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: الخطوة 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index 78f2ada9018..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: الخطوة 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 5d0d8f90c99..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: الخطوة 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index 0aa08b6d035..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: الخطوة 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index 9f345a33a10..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: الخطوة 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index b7f0ee5078b..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: الخطوة 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index 38d097fb9cb..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: الخطوة 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index 6dc5765e137..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: الخطوة 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index 054daea450f..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: الخطوة 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index c89bf530f0e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: Arithmetic Formatter -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -Students in primary school often arrange arithmetic problems vertically to make them easier to solve. For example, "235 + 52" becomes: - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. The function should optionally take a second argument. When the second argument is set to `True`, the answers should be displayed. - -## Example - -Function Call: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -Output: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -Function Call: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -Output: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## Rules - -The function will return the correct conversion if the supplied problems are properly formatted, otherwise, it will **return** a **string** that describes an error that is meaningful to the user. - -- Situations that will return an error: - - If there are **too many problems** supplied to the function. The limit is **five**, anything more will return: `'Error: Too many problems.'` - - The appropriate operators the function will accept are **addition** and **subtraction**. Multiplication and division will return an error. Other operators not mentioned in this bullet point will not need to be tested. The error returned will be: `"Error: Operator must be '+' or '-'."` - - Each number (operand) should only contain digits. Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - Each operand (aka number on each side of the operator) has a max of four digits in width. Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- If the user supplied the correct format of problems, the conversion you return will follow these rules: - - There should be a single space between the operator and the longest of the two operands, the operator will be on the same line as the second operand, both operands will be in the same order as provided (the first will be the top one and the second will be the bottom). - - Numbers should be right-aligned. - - There should be four spaces between each problem. - - There should be dashes at the bottom of each problem. The dashes should run along the entire length of each problem individually. (The example above shows what this should look like.) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index 4d951aca471..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: Budget App -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. It should be able to instantiate objects based on different budget categories like *food*, *clothing*, and *entertainment*. When objects are created, they are passed in the name of the category. The class should have an instance variable called `ledger` that is a list. The class should also contain the following methods: - -- A `deposit` method that accepts an amount and description. If no description is given, it should default to an empty string. يجب أن تضيف الوظيفة كائنً (object) إلى ledgerList بهذا الشكل `{"amount": amount, "description": description}`. -- A `withdraw` method that is similar to the `deposit` method, but the amount passed in should be stored in the ledger as a negative number. If there are not enough funds, nothing should be added to the ledger. This method should return `True` if the withdrawal took place, and `False` otherwise. -- A `get_balance` method that returns the current balance of the budget category based on the deposits and withdrawals that have occurred. -- A `transfer` method that accepts an amount and another budget category as arguments. The method should add a withdrawal with the amount and the description "Transfer to [Destination Budget Category]". The method should then add a deposit to the other budget category with the amount and the description "Transfer from [Source Budget Category]". If there are not enough funds, nothing should be added to either ledgers. This method should return `True` if the transfer took place, and `False` otherwise. -- A `check_funds` method that accepts an amount as an argument. It returns `False` if the amount is greater than the balance of the budget category and returns `True` otherwise. This method should be used by both the `withdraw` method and `transfer` method. - -When the budget object is printed it should display: - -- A title line of 30 characters where the name of the category is centered in a line of `*` characters. -- A list of the items in the ledger. Each line should show the description and amount. The first 23 characters of the description should be displayed, then the amount. The amount should be right aligned, contain two decimal places, and display a maximum of 7 characters. -- A line displaying the category total. - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -Besides the `Category` class, create a function (outside of the class) called `create_spend_chart` that takes a list of categories as an argument. يجب أن تنتج مخطط أعمدة بصيغة string. - -The chart should show the percentage spent in each category passed in to the function. The percentage spent should be calculated only with withdrawals and not with deposits. Down the left side of the chart should be labels 0 - 100. يتكون كل عمود من مخطط ألأعمدة من الحرف " o". The height of each bar should be rounded down to the nearest 10. The horizontal line below the bars should go two spaces past the final bar. Each category name should be written vertically below the bar. There should be a title at the top that says "Percentage spent by category". - -This function will be tested with up to four categories. - -Look at the example output below very closely and make sure the spacing of the output matches the example exactly. - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 3eecb64613e..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: Polygon Area Calculator -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Rectangle class - -When a Rectangle object is created, it should be initialized with `width` and `height` attributes. The class should also contain the following methods: - -- `set_width` -- `set_height` -- `get_area`: Returns area (`width * height`) -- `get_perimeter`: Returns perimeter (`2 * width + 2 * height`) -- `get_diagonal`: Returns diagonal (`(width ** 2 + height ** 2) ** .5`) -- `get_picture`: Returns a string that represents the shape using lines of "\*". The number of lines should be equal to the height and the number of "\*" in each line should be equal to the width. There should be a new line (`\n`) at the end of each line. If the width or height is larger than 50, this should return the string: "Too big for picture.". -- `get_amount_inside`: Takes another shape (square or rectangle) as an argument. Returns the number of times the passed in shape could fit inside the shape (with no rotations). For instance, a rectangle with a width of 4 and a height of 8 could fit in two squares with sides of 4. - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Square class - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## Usage example - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -That code should return: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index 7da3abff565..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: Probability Calculator -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -Suppose there is a hat containing 5 blue balls, 4 red balls, and 2 green balls. What is the probability that a random draw of 4 balls will contain at least 1 red ball and 2 green balls? While it would be possible to calculate the probability using advanced mathematics, an easier way is to write a program to perform a large number of experiments to estimate an approximate probability. - -For this project, you will write a program to determine the approximate probability of drawing certain balls randomly from a hat. - -First, create a `Hat` class in `main.py`. The class should take a variable number of arguments that specify the number of balls of each color that are in the hat. For example, a class object could be created in any of these ways: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -A hat will always be created with at least one ball. The arguments passed into the hat object upon creation should be converted to a `contents` instance variable. `contents` should be a list of strings containing one item for each ball in the hat. Each item in the list should be a color name representing a single ball of that color. For example, if your hat is `{"red": 2, "blue": 1}`, `contents` should be `["red", "red", "blue"]`. - -The `Hat` class should have a `draw` method that accepts an argument indicating the number of balls to draw from the hat. This method should remove balls at random from `contents` and return those balls as a list of strings. The balls should not go back into the hat during the draw, similar to an urn experiment without replacement. If the number of balls to draw exceeds the available quantity, return all the balls. - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). This function should accept the following arguments: - -- `hat`: A hat object containing balls that should be copied inside the function. -- `expected_balls`: An object indicating the exact group of balls to attempt to draw from the hat for the experiment. For example, to determine the probability of drawing 2 blue balls and 1 red ball from the hat, set `expected_balls` to `{"blue":2, "red":1}`. -- `num_balls_drawn`: The number of balls to draw out of the hat in each experiment. -- `num_experiments`: The number of experiments to perform. (The more experiments performed, the more accurate the approximate probability will be.) - -The `experiment` function should return a probability. - -For example, if you want to determine the probability of getting at least two red balls and one green ball when you draw five balls from a hat containing six black, four red, and three green. To do this, you will perform `N` experiments, count how many times `M` you get at least two red balls and one green ball, and estimate the probability as `M/N`. Each experiment consists of starting with a hat containing the specified balls, drawing several balls, and checking if you got the balls you were attempting to draw. - -Here is how you would call the `experiment` function based on the example above with 2000 experiments: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -Since this is based on random draws, the probability will be slightly different each time the code is run. - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index 6c6e1727299..00000000000 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: Time Calculator -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -Write a function named `add_time` that takes in two required parameters and one optional parameter: - -- a start time in the 12-hour clock format (ending in AM or PM) -- a duration time that indicates the number of hours and minutes -- (optional) a starting day of the week, case insensitive - -The function should add the duration time to the start time and return the result. - -If the result will be the next day, it should show `(next day)` after the time. If the result will be more than one day later, it should show `(n days later)` after the time, where "n" is the number of days later. - -If the function is given the optional starting day of the week parameter, then the output should display the day of the week of the result. The day of the week in the output should appear after the time and before the number of days later. - -Below are some examples of different cases the function should handle. Pay close attention to the spacing and punctuation of the results. - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -Do not import any Python libraries. Assume that the start times are valid times. The minutes in the duration time will be a whole number less than 60, but the hour can be any whole number. - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index 75864cfe93d..f2833e73321 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -In this project, you will learn the basics of CSS(Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. كما تعلمت في الخطوات القليلة الأخيرة من Cat App Photo، هناك بنية أساسية مطلوبة لبدء بناء صفحة الويب الخاصة بك. Every HTML document should have a `DOCTYPE` declaration and `html` element. The `DOCTYPE` tells the browser which version of HTML the document is in. And the `html` element represents the root element which contains all other elements. diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md index e7f8622047c..96447700204 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md @@ -15,7 +15,7 @@ Here is an example of an `img` element with a `src` attribute pointing to the fr ``` -Inside the existing `img` element, add an `src` attribute with this URL: +Inside the existing `img` element, add a `src` attribute with this URL: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` @@ -27,7 +27,7 @@ Your code should have an `img` element. You may have removed the `img` element o assert(document.querySelector('img')); ``` -Your `img` element should have an `src` attribute. You have either omitted the attribute or have a typo. Make sure there is a space between the element name and the attribute name. +Your `img` element should have a `src` attribute. You have either omitted the attribute or have a typo. Make sure there is a space between the element name and the attribute name. ```js assert(document.querySelector('img').src); diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md index a0de9a86dcf..5b5159e382d 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md @@ -21,7 +21,7 @@ Here is an example of turning an image into a link: # --hints-- -يجب أن يكون لديك عنصر `img` بقيمة `src` من `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. ربما حذفتها عن طريق الخطأ. +You should have an `img` element with a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. ربما حذفتها عن طريق الخطأ. ```js assert( diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md index 808e74805c5..2483f221bd1 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -بعد unordered list، أضف صورة جديدة مع قيمة السمة `src` المحددة إلى: +After the unordered list, add a new image with a `src` attribute value set to: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` @@ -40,13 +40,13 @@ assert( ); ``` -الصورة الجديدة لا تحتوي على سمة `src`. تحقق من وجود مسافة بعد اسم opening tag و/أو أن هناك مسافات قبل جميع أسماء السمات. +The new image does not have a `src` attribute. تحقق من وجود مسافة بعد اسم opening tag و/أو أن هناك مسافات قبل جميع أسماء السمات. ```js assert($('section')[1].lastElementChild.hasAttribute('src')); ``` -يجب أن يكون للصورة الجديدة `src`بقيمة `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. تأكد من أن قيمة السمة `src` محاطة بعلامات اقتباس. +The new image should have a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. تأكد من أن قيمة السمة `src` محاطة بعلامات اقتباس. ```js assert( diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index 90c89a4b1a6..38515327c29 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -38,7 +38,7 @@ assert( ); ``` -يجب أن يكون للصورة الثالثة سمة `src` بقيمة `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. +The third image should have a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index 2717c8cec15..a9ead4695b3 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -Inside your `.cat-left-ear` element, create another `div` element with the class `cat-left-inner-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -You should not change the existing `div` element with the class `cat-left-ear`. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -You should have a `div` element inside your `.cat-left-ear` element. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -Your `div` element should have the class `cat-left-inner-ear`. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index 199684f512f..00000000000 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: الخطوة 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Inside your `.cat-right-ear` element, create another `div` element with the class `cat-right-inner-ear`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-right-ear`. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -You should have a `div` element inside your `.cat-right-ear` element. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index 00dcf7a392b..ee0caae40bc 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: الخطوة 23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index 270e974ddcd..ce53081aac5 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: الخطوة 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index e2d486328e3..538628138c5 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: الخطوة 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index cec52d84e65..697d05881cf 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: الخطوة 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index d09b7844d7f..b37aa9386b2 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: الخطوة 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index 1d6f4948b6d..a15d11652bd 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: الخطوة 28 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index fc55718c674..728e81fbcde 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: الخطوة 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ As you did for the left ear, rotate the right ear at 45 degrees. # --hints-- -You should set the `transform` property of your `.right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. +You should set the `transform` property of your `.cat-right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index 2848e655f38..bcd8818718c 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: الخطوة 30 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index 938d85ad310..1c5bed7e7e1 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: الخطوة 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ The ears should always be placed above the part of the head it overlaps. You can `z-index` is a property you can use to define the order of overlapping HTML elements. Any element with a higher `z-index` will always be positioned over an element with a lower `z-index`. -To see `z-index` in action, set the `z-index`property of the left ear to `-1`. +To see `z-index` in action, set the `z-index` property of the left ear to `-1`. # --hints-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index ee72186aa7a..bb3dcf1a0ed 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: الخطوة 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index 9fbedf7e95e..3b3efbf0154 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,13 +1,13 @@ --- id: 646cfde6ac612e5d60391f50 -title: الخطوة 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- -Set the `z-index`property of the right ear to `1` so it always stays over the head. +Set the `z-index` property of the right ear to `1` so it always stays over the head. # --hints-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index 11305f8f9fb..946620f1758 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: الخطوة 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index bd0fcb0ae86..963468c2e2d 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: الخطوة 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index b6e2f2c21bf..14a5d7aeaf6 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: الخطوة 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index b1c4049f522..c2f979d3992 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: الخطوة 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index 3ffbc4a0bb8..625e32f4b04 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: الخطوة 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index 94b1e99c062..cd41b1ae9d5 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: الخطوة 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index 0f1933370f9..f3a52b3a435 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: الخطوة 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- You will now start working on the cat's eyes. Like the ears, the eyes will have inner eyes. -Create a `div` element with the class `cat-eyes`. Inside the `cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. +Create a `div` element with the class `cat-eyes`. Inside the `.cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. # --hints-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index acb508c20b3..60c5597b279 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -1,13 +1,13 @@ --- id: 646ddd3f9f97a0667b964bdb -title: الخطوة 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- -Inside the `.cat-left-eye` element, create another `div` element with the class `cat-left-inner-eye`. +Create two `div` elements, one with the class `cat-left-inner-eye` inside the `.cat-left-eye` element and another with the class `cat-right-inner-eye` inside the `.cat-right-eye` element. # --hints-- @@ -17,18 +17,36 @@ You should not change the existing `div` element with the class `cat-left-eye`. assert(document.querySelectorAll('div.cat-left-eye').length === 1); ``` -You should have a `div` element inside your `.cat-left-eye` element. +You should not change the existing `div` element with the class `.cat-right-eye`. + +```js +assert(document.querySelectorAll('div.cat-right-eye').length === 1); +``` + +You should have one `div` element inside your `.cat-left-eye` element. ```js assert(document.querySelectorAll('.cat-left-eye div').length === 1); ``` -Your `div` element should have the class `cat-left-inner-eye`. +You should have one `div` element inside your `.cat-right-eye` element. + +```js +assert(document.querySelectorAll('.cat-right-eye div').length === 1); +``` + +The new `div` element inside `.cat-left-eye` should have the class `cat-left-inner-eye`. ```js assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('cat-left-inner-eye')); ``` +The new `div` element inside `.cat-right-eye` should have the class `cat-right-inner-eye`. + +```js +assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); +``` + # --seed-- ## --seed-contents-- @@ -57,9 +75,11 @@ assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index 07a3204fc0a..00000000000 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: الخطوة 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -Inside the `.cat-right-eye` element, create another `div` element with the class `cat-right-inner-eye`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-left-eye`. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -You should have a `div` element inside your `.cat-right-eye` element. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index e9812044ed5..3025f51126d 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: الخطوة 43 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index 4fe01915913..e3805aff89c 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: الخطوة 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Move the left eye into position with a `position` property of `absolute` a `top` of `54px`, and a `left` of `39px`. +Move the left eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `39px`. # --hints-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index 424387d2dfa..eeb4f6d36ea 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: الخطوة 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index 36b49e6ccb9..aeb0f28cdfb 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: الخطوة 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index b23df3f44e1..07eb2b5743c 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: الخطوة 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index 47a48a64058..1653bbb1dc4 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: الخطوة 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index 8dde2006f09..6a3aa491180 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: الخطوة 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index 8c8ca075f91..c236ed959a2 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: الخطوة 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index 52066d59bf1..256aa6b6f3c 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: الخطوة 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index 5d020006beb..8cb28e7f912 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -1,8 +1,8 @@ --- id: 646dec359bef3b7811fba5a6 -title: الخطوة 52 +title: Step 50 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index 7ef76e590a1..9e27d2e510a 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: الخطوة 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index 10dd3e2b706..fd22b0e9cc9 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: الخطوة 54 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index 98d83c82548..b8f6c676584 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: الخطوة 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index 6205dcd1da1..a22b558dcdb 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: الخطوة 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index 434216efdf6..b4ad71b5cf1 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: الخطوة 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -13,13 +13,13 @@ Create a `div` element with the class `cat-mouth`. # --hints-- -You should create a `div` element. +You should create a `div` element. ```js assert(document.querySelectorAll('div').length === 13) ``` -Your `div` element should have the class `cat-mouth` +Your `div` element should have the class `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index 8cbfa80f7db..3a67bcd4a44 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: الخطوة 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index fadcea1229a..37ce01315b7 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: الخطوة 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ Using a class selector, give your `.cat-mouth-line-left` element a `position` of # --hints-- -You should have a `cat-mouth-line-left` selector. +You should have a `.cat-mouth-line-left` selector. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index 5ee4df1a19b..1afaafa8827 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: الخطوة 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- @@ -11,7 +11,7 @@ Using the `transform` property, rotate the left mouth line at `170` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(170deg)`. +Your `.cat-mouth-line-left` selector should have a `transform` property set to `rotate(170deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')?.transform === 'rotate(170deg)') diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index 1f8344cadef..a60c0d8e84f 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: الخطوة 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index c755484ba4c..cac8db8cac6 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: الخطوة 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ Rotate the right mouth line at `165` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(165deg)`. +Your `.cat-mouth-line-right` selector should have a `transform` property set to `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index 02dede33b77..aa23dfd3734 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: الخطوة 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index cacea46d94b..ca3d9da8be1 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -1,8 +1,8 @@ --- id: 646f0ef13604420a8744f7d4 -title: الخطوة 66 +title: Step 64 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index ac54217ae4e..27c8d1b7436 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: الخطوة 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index 10b1da29e7b..2deb1876a86 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: الخطوة 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index 2b6b37b4018..77ba6057c0d 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: الخطوة 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index 3bd39ce7e34..c01636a6571 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: الخطوة 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index b7c48ee5d5a..be472910e42 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: الخطوة 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index 1f9c18564aa..d0c12963155 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: الخطوة 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index 1a70935aab9..3d226cf8361 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: الخطوة 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index 5aacf416ced..131eb4c27a7 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: الخطوة 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index cf3c12100db..25b09b6b780 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: الخطوة 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index 0e89b93d6e7..ae6fe0da1e7 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: الخطوة 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index a3073b4340e..51e0a54f9d3 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: الخطوة 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index f6cef4b3f64..3b1df51c87b 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: الخطوة 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Use a class selector to target the `cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. +Use a class selector to target the `.cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. # --hints-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index 96659d90422..74373bf86a8 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: الخطوة 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index 54b892c4d1c..dc4cc6ac10e 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: الخطوة 81 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index 93f9849a08a..b26c9df7044 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: الخطوة 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index b27c3c30942..0a5fe23652a 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 You should now center the cat head. -Give the `.cat-head` element a position property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. +Give the `.cat-head` element a `position` property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. # --hints-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 4cd4e48c46b..133bb34ac00 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: الخطوة 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index 46806b06d9c..ecda03a6274 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: الخطوة 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index e292e0587f5..a7088c04c4a 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: الخطوة 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 347d86b778c..e81c63a1711 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index 83f73185e25..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: الخطوة 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Finally, return the value of `median`. - -Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. However, it is important to remember that shorter code is not always better code. In this case, reducing the lines of code would make the code harder to read and understand, impacting future maintainability. - -# --hints-- - -Your `getMedian` function should return the value of `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index 42e82feadb1..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: الخطوة 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index 4ae6307863a..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: الخطوة 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 0b3ddef2d62..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: الخطوة 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index 960a2c45fda..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: الخطوة 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index e00b7addcbd..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: الخطوة 28 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index bb9e14a81a5..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: الخطوة 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index 00840eea7a3..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: الخطوة 30 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index 552574933fb..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: الخطوة 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index ff45f567ce0..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: الخطوة 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -You should return `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index 5cb3ebff512..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: الخطوة 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -You should have a constant called `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index 67c1bb95433..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: الخطوة 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index 507e97ba64a..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: الخطوة 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..1dd73ecc04b --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index b05e6b5ed0d..3360c93b50d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index 31b5aab1949..0eac43fb139 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index dac12d4ddd3..587ae89de5c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index da746753d28..2607be95cff 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index fcacc62099d..f191e66cf0f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md index 00ed710db32..c9a2b3d8323 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index 5e2699cd92f..697a961ebe4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index d08f231f391..7e6e32a5fd4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index c9222ca37a2..fb235c822c5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index fe761e7f5dd..9a45437b3b7 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index 4d2f4e4141a..147905bc8f0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index 9edacf0701a..7e575e0125c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index 8aec1fe60fc..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: الخطوة 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -Variables can be assigned a value. When you do this while you declare it, this is called initialization. For example: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Initialize your `xp` variable to have a value of `0`, a number. - -# --hints-- - -`xp` should have a value of `0`. - -```js -assert.equal(xp, 0); -``` - -You should initialize the `xp` variable to `0`. Don't forget the semi-colon at the end of the line. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index 7ccd56b9984..8c73975833f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Create another variable called `currentWeapon` and set it to `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -You should use `let` to declare a variable called `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` You should use camelCase to name your variable. ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -Your `currentWeapon` variable should be set to `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` You should initialize your variable to `0`. ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index 6b71718528e..c09d8bbd79c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index 2a4b553972f..34d9459ba8c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index d35468b40c8..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: الخطوة 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -The variables you have assigned have all had values that are numbers. JavaScript has multiple different data types. The next one you will use is the string. Strings are used to store things like words or text. Strings are surrounded with double quotes, single quotes, or backticks. Here is an example of declaring a variable with a string: - -```js -let developer = "Naomi"; -``` - -Assign the `inventory` variable to have the value of `stick`. - -# --hints-- - -You should set `inventory` to the string `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -You should initialize your `inventory` variable with the string `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index ca6f2dc1138..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: الخطوة 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -The player's inventory in your game will be able to hold multiple items. You will need to use a data type that can do this. An array can be used to hold multiple values. For example: - -```js -let order = ["first", "second", "third"]; -``` - -This is an array which holds three values. Notice how the values are separated by commas. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -Your `inventory` variable should be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should have three values. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -Your `inventory` variable should have the values in the correct order. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index 448da406750..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: الخطوة 14 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -Your `inventory` variable should still be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should only have one value. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index d75e6619d33..e13e235a23c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index 63b8f3a8475..9caf7e829c1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index 491cbbb3fe3..01d81e0c3b4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index 88bcd739238..4e05e0cab79 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index b1c4d1d1b36..92af71dab77 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 68d2c7759d4..497843e83d9 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index 0d1dfed3a01..3797e2709d6 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 902edafc6b3..8236d006fdf 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 2638ce9ae52..ecd7b41e551 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 46025e90ee2..4899b136971 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index a1779a579fa..af1ce60c93d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 7c76591109f..1e0c4282c4f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 0f92ac714b4..ebe77f49365 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index cc90d211dd4..6040d1028d3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index b0dfcbb9d7b..2998105596f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index d1a2df0ea4b..1210d1b0e3b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 5b43ac85352..752b1671817 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index f31a581cc2d..1086d92ce39 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index 353d61ea5b0..9fa40be79c3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 1841ae43c76..25e82fda63c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 1a4ddfa7458..14eefc67a6e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index b1767342dc7..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: الخطوة 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -Object properties are written as `key: value` pairs, where `key` is the name of the property (or the key), and `value` is the value that property holds. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"town square"`. - -# --hints-- - -Your first value of `locations` should be an object. - -```js -assert.isObject(locations[0]); -``` - -Your first value of `locations` should have a `name` property. - -```js -assert.isDefined(locations[0].name); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index 12891538908..6474b8db7c7 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index c318e051bc8..4ed6343fd96 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 4337bbb7817..442032d8950 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index 84e25aa3479..75a9b22ce50 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index b3d8e3a6ced..cb2e7bdaeaa 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 76419553abe..05f08bb6a19 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 6a2fd6dd18e..60ab0a2b874 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index e4b2a615fa3..f16bd347359 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index 42fa1b7156b..1dc5232b378 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 6df6d825b45..b54ee029164 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index 64dbdadcc64..5dbb6907d42 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index 69288ecb4e1..88610822650 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index 0bc2ea4f339..9eecaaee678 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index 7e8b7d6f71e..1848eab1431 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index cb1dab4a818..dda03f4aa4a 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 21f723f50af..b4f57cab090 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index b0c4f008224..eb77b88b3b0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 7f9be4c607c..10e1f6ce3fa 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 43844bfd6fa..2ea876ddf24 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index 407ef30337e..addf8147369 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index b32a4624174..83b34def3df 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index bfff51b9bc6..8821fe26c64 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index c8da612c0f4..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: الخطوة 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -The `condition` string is just a placeholder. Change the `if` statement condition to check if `gold` is greater than or equal to `10`. - -Here is an `if` statement that checks if `num` is greater than or equal to `5`: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -Your `if` statement should check if `gold` is greater than or equal to `10`. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -Your `buyHealth` function should update `health` and `gold` if `gold` is greater than or equal to `10`. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -Your `buyHealth` function should not update `health` and `gold` if `gold` is less than `10`. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index 23684174766..c2df7ba8924 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index a5108647216..e35ee493c6b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index df552626f1b..adad93a5c6b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index 9a18056f74e..470f9065bec 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index 57cf505e52b..bb8a07042e3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index a210376fd75..b3592e5aa14 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index 63963cbfa61..0f65c77df04 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -تتوافق قيمة المتغير `currentWeapon` مع رقم الترتيب في قائمة `weapons`. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -In the `buyWeapon` function, use compound assignment to add `1` to `currentWeapon` - the user is buying the next weapon in the `weapons` array. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -يجب عليك استخدام التعيين المركَب لإضافة واحد إلى `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -Your `buyWeapon` function should increase `currentWeapon` by `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Your code should be in your `if` statement. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index a4c118f6f3d..1bd4b3f4533 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Change your `currentWeapon` assignment to use the increment operator. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -You should use the increment operator to increase `currentWeapon` by `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -You should not use compound assignment to increase `currentWeapon` by `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 0288af76ebf..da2f57a2940 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 0509fd0209f..bd061db00af 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 0ce8646d7ba..d72680595d4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeapon` within the brackets. +Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeaponIndex` within the brackets. When you use a variable in bracket notation, you are accessing the property or index by the *value* of that variable. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index eb78febdb46..6f6157eec95 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` is an object. Use dot notation to get the `name` property of that object. +`weapons[currentWeaponIndex]` is an object. Use dot notation to get the `name` property of that object. # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 065a312d032..b4717bed9e8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 33fcfc81e1d..1d2fa00beec 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ Your `buyWeapon` function should add the value of `newWeapon` to the `inventory` ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index c2c10d03e5b..5443169577e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index 049fa2470e9..baf137a8530 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index 0843051f507..47211f51cf4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index 35bd5b0666b..cd43584c827 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeapon` is less than `3` - the index of the last weapon. +Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -You should have a new `if` statement that checks if `currentWeapon` is less than `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` Your existing `if` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); Your existing `else` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index 71fd3d9c5b4..663cb53c8c4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Arrays have a `length` property that returns the number of items in the array. You may want to add new values to the `weapons` array in the future. -Change your `if` condition to check if `currentWeapon` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ You should use the `length` property on the `weapons` array. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -Your `if` statement should check if `currentWeapon` is less than `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index 00bcc81def5..4632b674d6f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -The `currentWeapon` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. Change the `if` condition to check `weapons.length - 1`, instead of `weapons.length`. @@ -23,10 +23,10 @@ You should update the condition to subtract `1` from `weapons.length`. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -Your condition should check if `currentWeapon` is less than `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 88e988b4342..cc1c4b8273d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 7beafd0a495..041472b56b8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 194d6d2130b..cc73efed14f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index a23450f5ed4..763f646b62b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 13585609194..6323fee672c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index 0032e30ee54..93b5c9babb8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Notice that you already have a `currentWeapon` variable elsewhere in your code. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 4e7f9117a26..59e803ef18d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index 0ce7ffb6314..d53accb8e69 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` Your `text.innerText` should update to the proper string. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index 44e4ab1926b..65721659631 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index f5bbad9e0d1..682a5fe76bd 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index b92571d3d30..abd86e35b27 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 7a5458fd606..1c6cd769027 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index 19e1675ca4b..d35fe209d9c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index 331e94c38eb..39a1ab9c522 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 2c8be2f2d00..9d1aebd3d08 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index c26c417f4d0..2312c7efe25 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 507f9e51e21..96029139026 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index eb32394270b..56b799d223d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index 58bc33ab805..4161214cad4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 437ca16fc9b..2b27d636b1f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index c0251f97df2..762701c4cf7 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index c6f89860b85..bb8a96a906d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeapon].name`. +You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index c66f059b602..040babab4ec 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index d59c6a933e7..6225b405f50 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Using these, you can generate a random number within a range. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ You should use the same `monsterHealth` line you already wrote. assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -You should add to the `weapons[currentWeapon].power` value. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` You should use `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? You should add the result of `Math.floor(Math.random() * xp) + 1` to the result of `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index d68134d2350..274040289a1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index ffd5e28f3ee..079c222ff3d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index 5b971e7aaaf..7930bd5579f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 3be7b4a8355..d7ef1c1dac8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index d5af7299e44..ac255663e19 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index 81d4dd2883d..0aede6aa27a 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index 110f82cbd5b..22817a6e62f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 35a05b443aa..be06a139e03 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 024b4959d65..5766abd424a 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index 3bca3e5c383..f6b904e02c3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index c1f3457b7c5..405a97fa6e2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 3ad57b17036..5d78cc4d0b5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 641e365bf76..9286fc33eb0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 5ff1b213382..22c13f88c2b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeapon` to `0`, and set `inventory` to an array with the string `stick`. +At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Also update the `innerText` properties of `goldText`, `healthText`, and `xpText` to their current values. @@ -39,10 +39,10 @@ Your `restart` function should set `gold` to `50`. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -Your `restart` function should set `currentWeapon` to `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 3f0337d819c..a132b990d3c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index 4e2d63fa3e4..bf52667c43c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index 5bb111d0b29..e318c25ce60 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 737e5a1a247..41faa44d5ef 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 1beebfe0ab7..b9f78edb5c3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index e714aedc940..7b96177a6a6 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index b4f1daf80a0..f945040ccab 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index 9ac019e464d..7194de8da02 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index 648a7562e7c..ab5905353b1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 1b7a89f353f..632abe728dd 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index 4c7363d5341..7da1800af5e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ Move your `monsterHealth` assignment into your `if` block. # --hints-- -You should move your `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` into your `if` block. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index a1775d7543b..e6ce6f4616a 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct You should add an `else` block after your `if (isMonsterHit())` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index 1b9384de685..89b70f7c1b3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 9219b8da936..3b985e1dbd3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 4bca7930754..fcb4a8b153e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 308f53fd795..9e1a123a719 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 0aecde7e233..28d47dffdff 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Decrement the value of `currentWeapon` in your `if` statement, after you update the text. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ You should use the decrement operator. assert.match(attack.toString(), /--/); ``` -You should decrement `currentWeapon` in your `if` statement. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index fb88f652092..aa926a8b8d8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index 84e6671d449..0ab02c6d783 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index f2c2ae3c598..705c25660dd 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index 4123ece8378..c1d224bb2dc 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index 9cf97ef1f86..8e5ad353975 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index ae21c052d6e..7f603982c95 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index 2c5359f0283..9629947e6cb 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index a674632b49b..a8fa573a795 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index 1ef1456647a..af13af000e3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 1eb6aa4c1f1..ee1f17b327b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index 9da6c0e84f1..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -`for` loops are declared with three expressions separated by semicolons. `for (a; b; c)`, where `a` is the initialization expression, `b` is the condition, and `c` is the final expression. - -The initialization expression is executed only once, before the loop starts, and is often used to define and set up the loop variable. Think of it like declaring a counter to use in your loop. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -You should change your initialization in the `for` loop to be `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index 346adeb6fa0..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -The second statement in a `for` loop, the condition statement, is evaluated at the beginning of every loop iteration. The loop will continue as long as the condition evaluates to be true. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -You should update your condition statement to be `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index 1dd28e8ad74..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -The last statement in a `for` loop, the final expression, is executed at the end of each loop iteration. - -Since we changed the initialization statement to use `i` instead of `x`, change `x++` to `i++`. This will increment the initializer `i` by 1 after each loop. - -# --hints-- - -You should change your final expression to `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index 71875c1a0ea..6045c2ab02f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 5d2de454974..5c01ee608a2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index 659e9a1e4b1..51a72303ff2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index b0868a55bf0..3b46e0900dc 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 650fe59ddd1..d5cf53b8ad6 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index ebf70ca3d06..4f1db2ae242 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index db3e2b0cc04..e584e963759 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index 4210e30d01c..727d1e77172 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index a71e65423de..db87c6e04f3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index c38becdee8c..52cf362e9fa 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index 27be8c27ee8..3cb2f0de300 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index 5d9f5578007..7eb5ec71f9f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index 72dbaf4cf4e..3787d75f54e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index 5d686fc3a15..ff9461c6adc 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index 2c58ef2a585..5335ec901fb 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -You should declare a `cleanInputString` variable. -```js -assert.isDefined(cleanInputString); -``` -Your `cleanInputString` variable should be a function. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index dc38ad5b3e5..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: الخطوة 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -You need to split your `str` into individual characters. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -Your `cleanInputString` function should declare a `strArray` variable. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Your `strArray` variable should be assigned the value of `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index 5097ab76260..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: الخطوة 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Declare a `cleanStrArray` variable and assign it an empty array. You will use this to store your valid number characters. - -# --hints-- - -Your `cleanInputString` should declare a variable called `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Your `cleanStrArray` variable should be assigned an empty array. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index 79cf7300e4e..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: الخطوة 21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Use a `for` loop to iterate through each character in your `strArray` array. - -# --hints-- - -Your `cleanInputString` function should have a `for` loop. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Your `for` loop should initialize a variable called `i` to `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Your `for` loop should have a condition that checks if `i` is less than the length of `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Your `for` loop should increment `i` by `1` each time it runs. Use the increment operator for this. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index 40f4a0700a4..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: الخطوة 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). If it is not, `push` it to the `cleanStrArray`. - -# --hints-- - -Your `for` loop should have an `if` statement. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Your `for` loop should use `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Your `for` loop should `push` `strArray[i]` to `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 4ecae222222..0f955c403d9 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Start by creating a function called `isInvalidInput` – it should take a single # --hints-- -You should declare an `isInvalidInput` variable. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` should be a function. ```js diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index 5fe11ad76a0..9a7c21d3716 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Your next step is to allow users to add entries to the calorie counter. Declare # --hints-- -You should declare an `addEntry` variable. - -```js -assert.isDefined(addEntry); -``` - -Your `addEntry` variable should be a function. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index d90798583b0..ac72cff5f7a 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; Variable naming follows specific rules: names can include letters, numbers, dollar signs, and underscores, but cannot contain spaces and must not begin with a number. -Declare a `character` variable in your code. +Use the `let` keyword to declare a variable called `character`. _Note_: It is common practice to end statements in JavaScript with a semicolon. `;` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index 7e35270c48c..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: الخطوة 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index 5b762507c9c..00000000000 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: الخطوة 15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -To check if the `Object.freeze()` method is working, you can try to assign a new value to one of the existing properties. - -Below the `Object.freeze(myFavoriteFootballTeam)`, assign the `USA` string to `myFavoriteFootballTeam.team`. Below that, add a `console.log` for `myFavoriteFootballTeam.team`. - -When you open up the console, you will see an `Uncaught TypeError` message. This error appears because the `Object.freeze()` method does not allow you to overwrite that value. - -# --hints-- - -You should assign the `USA` string to `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -You should add a `console.log` for `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index 559a90b5bb4..1681c20b6a5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index ef50dfb2449..337fb98cd67 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 6ddeb6342d5..98c3b8f8c60 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index 8d8639b9f32..e2851838190 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index e80d9c6249c..c54e160c5e7 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index 3134b543826..22698092edb 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index dc083577cfc..cdf7c91bd06 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index 12f33010faf..a26fe202b9b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index 7f20fe0debc..b65b9ba46c0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index a3e3ee49bb4..e2904855230 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index a02c92e5290..c14e05b3414 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index cc2789d36ea..2cf47807583 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index 8a80a109b74..7f6afb2588f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index b38518f1343..2246393a585 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index cce30650268..1f9aaa24c6c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index 550c7a4d151..4974c8fe922 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index 0afc43b97a5..f20a21347c5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index e3cff67f166..895bb4f0334 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index 392d9ab8cd5..20637c388da 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index a21df8863f7..8962f7ff96d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index 33a9fcab13b..0eb757ced6f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index e251066d292..7bb0e680af6 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index 7cb02189029..d7f4fb48a05 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index 71ced384b6b..88021aa734c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index 2efa9b264c7..fd7f25009ec 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index e362547a2ee..57f71d86be3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index 35b9413cdcc..2143a45b45e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 9ff99f189c9..83944b6630d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index c3626805851..0b4faf120ef 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index c88dc340593..3774afdd998 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index 38e99fa3ade..e9fc650aaa1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index 375b9c24992..583bb8f166d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index eefdfcf3890..1efcfbc1eb7 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index 6f2e56d6627..7174cdbf897 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index 96e405e3825..22abfaec027 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index 01399b757f6..700eec4357d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index 04d366cfa60..b515fd5c707 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index 526b5811444..c9cb84459a2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index 915fb9961a1..5442eb6dfb8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index 45d7174b9ee..317f5286212 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index 7926e5b86cc..f4a14da36a8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index b53150abba8..dbbd64ee329 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index 12f17bb97b7..aa4e7aad4fb 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index 4b1eee2a713..c7daed61853 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 8ab1c3f0012..ea0a3468f21 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index 9117ef2029f..0841316e1ed 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index 2087d37ebf9..872b5d7099e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index 851b1846b26..e8c422a2185 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index b1d67634362..e2b541bd761 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index 9dde8cc0f80..66511f02125 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index 5946c0f3952..08c07b681db 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 19b1597b56b..c97ca5fc2e1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index 8256f503379..ab0ea1db754 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 8ec2dc0ad92..a2db7efe245 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index 865c5f094e8..6e24821e5bd 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index ec10d914a7d..f3daeaa94b3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index 3e942ea47fa..eaa079d1976 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index 5d7d8e490ba..49da9025dfa 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index dd45d5eac13..d381eb296e4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index 523d7fcac5f..1a2afc5b173 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index 7d9da9b1c2a..1a10fbac3a3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index 212e1a2500f..67044537ddc 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index 3dc58a01511..dc5500fbad8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index e462ec2ff4f..8429b596452 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index 8c0c745cb7b..7a6bb1c164d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index de1594f8ea0..f6743337cd1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index c11f6c8e6cf..ae853142b9f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index 852506b9f41..1fc3cb7ffda 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index 6f926fc0dba..e338139f56d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index 75ab75f3455..61aa01f84f2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index 18098d7e076..3dc8fc0087b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index a4f1ae4042d..80f7cdf0bd8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index d663163f2ac..72139eb5008 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index 11ebeaee6bd..4904be6db3c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index 2bfd4570f42..e1f1f103b35 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index a28d1281870..cc38f56ffd1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index 9fae4e730a3..30d718ff969 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index acd097dbbde..56503f9a931 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index b812aec7af1..7b35e5d6226 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index 9d871c1d9c6..b5de5776dde 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 29e9fa58639..eea742a0bb2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index 222bfa7acaa..e2181044263 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index 05af5e2d38d..ca02a2ef875 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index 9b88596e977..5f4d93af5ea 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index b4f6c9a5859..1a205a34262 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index e8be7535e3a..31de3d0ef2b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index ce9808feaa6..8127e7d57a8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index 997705abb10..ec00ed44bc1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index 2f495af4f34..835d67a22a0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 4d37fc138ba..c1a558e2de2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index 55dbd979a95..bd79dd132b0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index 02b3b3df3be..80cc9a8eeda 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index 8b1c9958afc..e3c1ba5e625 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index 15d5d6a6609..c9615280441 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index 7ac0f279386..88e1b211c79 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index 56af61e5e14..035707a1281 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index e79db048309..2073d316dbb 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index 0342d51f4a7..9e170c111a5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index 0322d91fd24..975723b9baa 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index 29feb0cf613..bbc45daaa21 100644 --- a/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Working with Text Question H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index 05765087c87..75fc123e8a2 100644 --- a/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Working with Text Question I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index e496b6b12a8..35c0cd937ec 100644 --- a/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Working with Text Question J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/arabic/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/arabic/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 92c630f9429..acf6ed00556 100644 --- a/curriculum/challenges/arabic/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/arabic/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 3fcdcc4105c..74aaa2353f6 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialogue 2: Tom Meets the Coworker Next To Him" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index 857d52d4c51..fa5b427fdc5 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Task 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index 4378e29c5a2..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 1b087682364..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --sentence-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## --blanks-- - -`didn't` - -### --feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index b151c618ba5..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index e05d1b4d18c..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 15a7e2d974a..bc57860a94a 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 8ecc2d884fc..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..7f272358313 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index 7f0e05f85c4..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 329730abb2b..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index 08a8c6eb76c..52838f37f84 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 4713f6f90e7..c4b97533063 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index 82ca13e64a4..6672cad0a72 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 3dd315d87d0..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index 905883840d1..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index b8c73e4627d..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..c2978af6438 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index 5c853b53bf8..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index e1bc9517b30..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..e5571f08f36 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..ea4e9a66215 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index 0c3e95d7e70..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 0477289c3a0..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index de300f3817e..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index be0936fbf23..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index df6f482155c..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..6947fe048c2 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..e05448d9d48 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Task 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..aaa7a3890de 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Task 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..ea5416f070f 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Task 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..91066451909 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Task 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..109deef84e4 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Task 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..5bd0b159b4a 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Task 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..527d24103b0 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Task 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..b536269cb5a 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Task 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..9ea5dfd2ec2 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Task 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..0031c5026bb 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Task 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..dc9412ebb8f 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Task 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..53772f4f629 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Task 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..564de6f07b1 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Task 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1f031ee3f1e 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Task 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..f2d572900d8 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Task 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..4b818dc4a70 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Task 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..707eb0d122d 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Task 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..e117e9317d8 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Task 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..5b4096f746c 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Task 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..7221646546e 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Task 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..03428f51432 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Task 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..287f03ddd1e 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Task 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..1538fbae725 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Task 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..331abe3703f 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Task 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..93862c576dc 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Task 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..5afcfa7c916 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Task 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..7937868764f 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Task 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..bf7fa023589 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Task 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..304a2c583d8 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Task 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..98e230933ca 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Task 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..054af388b35 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Task 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..3a5f7c3594b 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Task 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ff7dad74588 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..d41cb232f9c 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Task 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..a29433a1b9a 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Task 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..d29b5313cd6 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Task 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..aa9a85fb288 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Task 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..7eed555b4e1 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Task 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..fd66f011103 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Task 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..198f4c0b6e9 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Task 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..db488ae0a03 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Task 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..fcebb2960ea 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Task 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..b3152c55726 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Task 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..921551d84e0 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Task 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..778df3691d7 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Task 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..cf208824a34 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Task 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..7d49d97efb2 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Task 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..924dc459772 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..32c51e43652 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Task 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..bb730a97243 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Task 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..b96607f08e3 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Task 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..1649db7e147 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Task 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..4d1c3371618 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Task 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..7161861383e 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Task 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..000ef53d2ef 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Task 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..f9abd0109a4 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Task 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..b13756997fc 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Task 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..2de180a58c7 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Task 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..0866794a4e5 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Task 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..610f7a26d7a 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Task 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..185183a0410 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Task 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index a97c197e22e..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index 5674935eed0..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index a966696d7b6..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 39ecfc10ec3..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index e3c77f64da4..00000000000 --- a/curriculum/challenges/arabic/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index fa7e47d9269..544287712ba 100644 --- a/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/chinese-traditional/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: 使用 s 標籤給文本添加刪除線 challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/chinese-traditional/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/chinese-traditional/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index 79ce4d388e0..b7374b6631e 100644 --- a/curriculum/challenges/chinese-traditional/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/chinese-traditional/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: 通過瀏覽器降級提高兼容性 challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index 0f1c65d2135..f3a2c89db3c 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: 將一個變量的值賦給另一個 challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index d6ae3106c92..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: 步驟 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index 151d625d2fd..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: 步驟 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index abaa8fd461f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: 步驟 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index b2159a7fee9..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: 步驟4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index 55323e68201..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: 步驟 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index 9ec4d0b797f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: 步驟6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index 1066d056bc8..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: 步驟 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index 2b56cc1b0b0..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: 步驟 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index d5469b2a804..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: 步驟 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index f7ee16d9c60..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: 步驟 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index 7681f8e3912..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: 步驟 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index caec607aa3f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: 步驟 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index fecd9cc37eb..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: 步驟 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index 5cb365d892b..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: 第 14 步 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index ae916f2ad57..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: 步驟15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index e345e077ad0..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: 步驟 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index 00c8a75d53c..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: Step 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index b2f063cab6f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: 步驟 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index 3c69b1d31f0..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: 步驟 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index 593fad2a319..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: 步驟 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index d4084b5e586..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: 步驟21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index b56c6c14c70..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: 步驟 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index e713ac7ee53..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: 步驟-23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index 40d3ab700a3..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: 步驟 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index 946c5ecba2f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: 步驟 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 5b1859f4344..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: 步驟 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index fe46d6bcf05..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: 步驟 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index fe7a67208ba..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: 第 28 步 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index b9d47b8cf71..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: 步驟 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index 4c9e4d4d7af..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: 第 30 步 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index 7294ee215dd..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: 步驟 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index a3567eae8eb..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: 步驟 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index ccf557698d0..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: 步驟 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index 0fc04da3a31..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: 步驟 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index 19a6d797739..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: 步驟 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index 5b31829eb5f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: 步驟 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index 1ab0b03b177..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: 步驟 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index e6300341579..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: 步驟 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 936598f3688..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: 步驟 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index bae7457b781..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: 步驟 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index af81814550a..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: 步驟 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index e91adc09639..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: 步驟 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index 594ee2be05c..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: 第 43 步 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index 3e6470a37b0..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: 步驟 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index 05505324060..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: 步驟 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index 6690896b66c..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: 步驟 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index 81ec93dc341..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: 步驟 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index 565265ece6f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: 步驟 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index 182e8caf15d..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: 步驟 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index 711704eec9c..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: 步驟 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index f2786ea4cdc..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: 步驟 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 73936deee46..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: 第 52 步 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index 93adec585ff..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: 步驟 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index 091e1c94ece..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: 第 54 步 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index 44a21939fa2..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: 步驟 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index e90a9cf9290..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: 步驟 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index 4a559cac8d2..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: 步驟 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index 40622be8ae9..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: 步驟 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index a166beb9691..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: 步驟 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 72e7b3f8cf0..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: 步驟 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index 80796ffed24..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: 步驟 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index 7915de44d57..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: 步驟 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index 8e142be024d..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: 步驟 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index 77aba1ef52c..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: 步驟 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index b8d6c83e701..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: 步驟 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index 5ca9c4ea063..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: 第 66 步 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index d2839eb7b9a..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: 步驟 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index b852270379e..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: 步驟 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index b433105bdb3..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: 步驟 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index 4ba503b62f8..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: 步驟 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index 3f04cfc030f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: 步驟 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index f78ecaa8c58..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: 步驟 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index 791c1850306..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: 步驟 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index 4cd8bbdddd4..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: 步驟 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index 1a1ad541ddf..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: 步驟 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index ecc386f7cd4..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: 步驟 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index 0aa99973bdd..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: 步驟 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index c1468f74926..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: 步驟 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index ec4ed0c061e..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: 步驟 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index 394ff7553d3..24fb2067813 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -13,7 +13,7 @@ Start by defining a function named `add_expense` that takes three parameters: `e # --hints-- -You should declare a function named `add_expense`. +You should use the `def` keyword to declare a function named `add_expense`. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index bcf02f365af..2fdf7ab96e2 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -7,13 +7,13 @@ dashedName: step-2 # --description-- -A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets `[]`, with each item separated from the following one by a comma. +A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets (`[]`), with each item separated from the following one by a comma. ```py numbers = [1, 2, 3, 4] ``` -Create an empty list named `expenses`. You will use it to store each of your expenses. +Use a pair of square brackets to create an empty list named `expenses`. You will use it to store each of your expenses. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index 6c6e8dcf53a..8bd7f9a43b4 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -7,21 +7,29 @@ dashedName: step-3 # --description-- -The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you can use the `.append()` list method: +The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you'll use the `.append()` list method: ```py my_list = [2, 4, 7] my_list.append(3) ``` -In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. +In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. + +Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. # --hints-- You should have `expenses.append()` in your function. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\)/m) +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append()")`)) }) +``` + +You should not have `pass` in your function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("add_expense").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index a18b7f20bc4..d23e9c8297a 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -7,7 +7,7 @@ dashedName: step-4 # --description-- -A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces `{}` and they contain key-value pairs separated by commas. Each key is followed by a colon `:` and the value: +A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces (`{}`) and they contain key-value pairs separated by commas. Each key is followed by a colon (`:`) and the value: ```py {'amount': 50.0, 'category': 'Food'} @@ -19,10 +19,20 @@ Create a dictionary with a key `'amount'` and value of the `amount` parameter an # --hints-- -You should have `expenses.append({'amount': amount})` in your function. +You should pass a dictionary as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) +`)) }) +``` + +You should pass `{'amount': amount}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index 0517bd16e81..cc8d2375484 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -11,10 +11,20 @@ Add another key-value pair to the dictionary you are appending to the `expense` # --hints-- -You should have `expenses.append({'amount': amount, 'category': category})` in your code. +You should add a second key-value pair to the dictionary you are passing as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*,\s*("|')category\2\s*:\s*category\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) and len(node[0].tree.keys) == 2 +`)) }) +``` + +You should pass `{'amount': amount, 'category': category}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount, 'category': category})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index 57a21dd76eb..df99de45ed8 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -Start by defining a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. +Next, define a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. Fill the body of your new function with a `pass` statement. diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index 906ecab0990..2d36888d170 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -11,10 +11,22 @@ Inside the `print_expenses` function, create a `for` loop that iterates over eac # --hints-- -You should have `for expense in expenses:` in your `print_expenses` function. Remember to use `pass` within the loop body. +You should create a `for` loop that iterates over `expenses` in your `print_expenses` function. Remember to use `pass` within the loop body. ```js -({ test: () => assert.match(code, /for\s+expense\s+in\s+expenses\s*:/ ) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_iter().is_equivalent("expenses")`)) }) +``` + +You should use `expense` as the loop variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_vars().is_equivalent("expense")`)) }) +``` + +You should have `pass` only inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index 387777d6aae..b6857e6c162 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -9,14 +9,20 @@ dashedName: step-8 Next, you are going to display the details for each expense. -Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. Leave the placeholders empty for now. +Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. # --hints-- -You should have `print(f'Amount: {expense}, Category: {expense}')` in your `for` loop. +You should print `f'Amount: {expense}, Category: {expense}'` in your `for` loop. ```js -({ test: () => assert.match(code, /^\s+print\s*\(\s*f("|')Amount: \{\s*expense\s*\}, Category: \{\s*expense\s*\}\1\s*\)/m) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].has_call("print(f'Amount: {expense}, Category: {expense}')")`)) }) +``` + +You should not have `pass` inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_bodies()[0].has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index 140fcebf27c..51960bc3a77 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -7,7 +7,12 @@ dashedName: step-9 # --description-- -You can access values in a dictionary through its keys. You need to use the bracket notation and include the key between the square brackets: +In Python, an important thing to know is that the same type of quote used to define a string cannot be used inside it. For example, the string `'I'm a string!'` is not valid. To use the single quote inside that string you should either: + +- Escape the quote by prepending a backlash to it: `'I\'m a string!'` +- Or use double quotes to define the string: `"I'm a string!"` (preferred). + +You can access values in a dictionary through its keys. You need to use bracket notation and include the key between the square brackets: ```py my_dict = {'amount': 50.0, 'category': 'Food'} diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index 1f80fc625f6..9f5a490b0cb 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -7,7 +7,9 @@ dashedName: step-10 # --description-- -You will need a function to calculate the total amount of expenses. Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. +You will need a function to calculate the total amount of expenses. + +Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. # --hints-- @@ -21,7 +23,7 @@ You should define a function named `total_expenses`. }) ``` -Your`total_expenses` function should take a single `expenses` parameter. +Your `total_expenses` function should take a single `expenses` parameter. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index 317085535c2..08d23b1db6e 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -13,14 +13,22 @@ Lambda functions are brief, anonymous functions in Python, ideal for simple, one lambda x: expr ``` -In the example above, `x` is a parameter to be used in the expression `expr`. Create a `test` variable and assign it a lambda function that takes an `x` parameter and returns `x * 2`. +In the example above, `x` represents a parameter to be used in the expression `expr`, and it acts just like any parameter in a traditional function. `expr` is the expression that gets evaluated and returned when the lambda function is called. + +Create a variable named `test` and assign it a lambda function that takes an `x` parameter and returns `x * 2`. # --hints-- -You should have `test = lambda x: x * 2` in your code. +You should declare a variable named `test`. ```js -({ test: () => assert.match(code,/^test\s*=\s*lambda\s+x\s*:\s*x\s*\*\s*2/m)}) +({ test: () => assert(runPython(`_Node(_code).has_variable("test")`))}) +``` + +You should assign `lambda x: x * 2` to your `test` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_variable("test").is_equivalent("test = lambda x: x * 2")`))}) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index e2693b1e03f..afaecf4d3da 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -13,9 +13,11 @@ Lambda functions can be valuably combined with the `map()` function, which execu map(lambda x: x * 2, [1, 2, 3]) ``` +The function to execute is passed as the first argument, and the iterable is passed as the second argument. + The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index 886988d9c70..0d904e4d542 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -1,6 +1,6 @@ --- id: 658238f7604f154ea9a23e1e -title: 第 14 步 +title: Step 15 challengeType: 20 dashedName: step-15 --- @@ -9,7 +9,7 @@ dashedName: step-15 The `sum()` function returns the sum of the items in the iterable which is passed as its argument. You are going to use `sum()` together with `map()` and `lambda` functions to get the total amount of expenses. -For now, make a little test and modify your current `print()` call by passing `sum(map(test, [2, 3, 5, 8]))` as the argument. +For now, make a little test and modify your current `print()` call replacing the `list()` call with a call to the `sum()` function passing it the current `map()` call as the argument. # --hints-- @@ -36,7 +36,7 @@ def total_expenses(expenses): --fcc-editable-region-- test = lambda x: x * 2 -print(map(test, [2, 3, 5, 8])) +print(list(map(test, [2,3,5,8]))) --fcc-editable-region-- expenses = [] diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index a8bdbae2159..0c4b5191a9a 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -1,28 +1,22 @@ --- id: 65823b0167fd894f4a7ea60a -title: 步驟15 +title: Step 16 challengeType: 20 dashedName: step-16 --- # --description-- -Next, you are going to implement the same logic to the `total_expenses` function. +Next, you are going to implement the same logic within the `total_expenses` function. For now, delete both the `test` function and the `print()` call. # --hints-- -You should delete your `test` variable. +You should delete your `test` variable and the related `print()` call. ```js -({ test: () => assert.notMatch(code, /test\s*=/) }) -``` - -You should delete your `print(sum(map(test, [2, 3, 5, 8])))` call. - -```js -({ test: () => assert.notMatch(code, /print\s*\(\s*sum/) }) +({ test: () => assert.isFalse(runPython(`_Node(_code).has_variable("test")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index 873644e9308..af93b0e12fc 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -1,27 +1,28 @@ --- id: 65823bbbdb4eaa4f9d20a0fb -title: 步驟 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- # --description-- -Within your `total_expenses` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the value of the `'amount'` key in the `expense` dictionary. +In the `total_expenses` function, you'll now integrate a lambda function. Replace `pass` with a lambda function that has `expense` as its parameter. + +`expense` is expected to be a dictionary, and your lambda function should return the value of the `'amount'` key in the `expense` dictionary. # --hints-- -You should have `lambda expense: expense['amount']` in your `total_expenses` function. +You should create a `lambda` function that uses the parameter `expense` and returns `expense['amount']` in your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_stmt("lambda expense: expense['amount']")`)) }) +``` + +You should not have `pass` in your `total_expenses` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("total_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index d17f8f6571d..c06ab93c264 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -1,6 +1,6 @@ --- id: 65823cfc74aa564ffc460489 -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- @@ -11,17 +11,22 @@ Now, call `map()` passing your `lambda` function as the first argument and the ` # --hints-- -You should have `map(lambda expense: expense['amount'], expenses)` in your code. +You should call the `map()` function inside the `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("total_expenses").find_calls("map")) == 1`)) }) +``` + +You should pass your `lambda` function as the first argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[0].is_equivalent("lambda expense: expense['amount']")`)) }) +``` + +You should pass the `expenses` list as the second argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index 96fa62cfc4b..29c09ae0262 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -1,6 +1,6 @@ --- id: 65823dde36392f505a39f7c7 -title: 步驟 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- @@ -11,17 +11,10 @@ Finally, pass your `map()` call to the `sum()` function to obtain the total expe # --hints-- -You should return `sum(map(lambda expense: expense['amount'], expenses))` from your `total_expenses` function. +You should call the `sum()` function passing it your current `map()` call as the argument and return the result from your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+sum\s*\(\s*map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_return("sum(map(lambda expense: expense['amount'], expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index 87427352991..63af9be4151 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -1,6 +1,6 @@ --- id: 65823e87c9741750a22085a7 -title: 步驟 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index b766495504a..289c306da64 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -1,27 +1,26 @@ --- id: 65823ff0d4b991510fade1a8 -title: 步驟 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- # --description-- -Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category`. +Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -You should have `lambda expense: expense['category'] == category` inside the `filter_expenses_by_category` function. +You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) +``` + +You should not have `pass` inside the `filter_expenses_by_category` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index 9e222343dcf..fc8cab1fff0 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -1,6 +1,6 @@ --- id: 65824111a09164518320088d -title: 步驟21 +title: Step 22 challengeType: 20 dashedName: step-22 --- @@ -13,23 +13,30 @@ The `filter()` function allows you to select items from an iterable, such as a l filter(my_function, my_list) ``` -`filter()` returns an iterator in which the elements of `my_list` are included, for which `my_function` returns `True`. An iterator is a special object that enables you to iterate over the elements of a collection, like a list. +`filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. + +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. # --hints-- -You should have `filter(lambda expense: expense['category'] == category, expenses)` in your `filter_expenses_by_category` function. +You should call `filter()` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")) == 1`)) }) +``` + +You should pass `lambda expense: expense['category'] == category` as the first argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[0].is_equivalent("lambda expense: expense['category'] == category")`)) }) +``` + +You should pass `expenses` as the second argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index 3df881bb274..f0f6c12e365 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -1,6 +1,6 @@ --- id: 658244fdf4b0265334711664 -title: 步驟 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- @@ -14,14 +14,7 @@ Finally, return the result of the `filter()` call. You should return the result of the `filter()` call from your `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_return("filter(lambda expense: expense['category'] == category, expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index 924e037e3e8..cae351eee31 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -1,6 +1,6 @@ --- id: 65824561f3478e5371a33ae5 -title: 步驟-23 +title: Step 24 challengeType: 20 dashedName: step-24 --- @@ -19,6 +19,8 @@ You should define a function named `main()` without parameters. ({ test: () => assert(runPython(` import inspect inspect.isfunction(main) + sig = str(inspect.signature(main)) + sig == '()' `)) }) ``` @@ -26,12 +28,7 @@ You should define a function named `main()` without parameters. You should move the `expenses` list inside the `main()` function body. ```js -({ test: () => assert(runPython(` - import inspect - sig = str(inspect.signature(main)) - sig == '()' - `)) -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_body().is_equivalent("expenses = []")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 964d261430d..23b116aea50 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -1,6 +1,6 @@ --- id: 658246c28575d653d1f89b59 -title: 步驟 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- @@ -18,30 +18,16 @@ Below the `expenses` list, create a `while` loop. Use `True` for the condition, # --hints-- -You should have `while True:` in your `main()` function. +You should create a `while` loop using `True` as the condition within your `main()` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+while\s+True\s*:/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_conditions()[0].is_equivalent("True")`)) }) ``` -You should have `print('\nExpense Tracker')` in your `while` loop. +You should print `'\nExpense Tracker'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')\\nExpense\s*Tracker\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print")[0].is_equivalent("print('\\\\nExpense Tracker')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index b7c9d61c724..150c7896f1d 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -1,6 +1,6 @@ --- id: 65824872894f59546e3084e2 -title: 步驟 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- @@ -9,21 +9,18 @@ dashedName: step-26 The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. -After the `print()` call, add another one to print the string `'1. Add an expense'`. +After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. # --hints-- -You should have `print('1. Add an expense')` in your `while` loop. +You should print `'1. Add an expense'` within your `while` loop after the existing `print()` call. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')1\.\sAdd\san\sexpense\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index 7f6a8e0d5cc..a557268c2db 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -1,6 +1,6 @@ --- id: 65824a1b16631c54fa524154 -title: 步驟 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- @@ -11,17 +11,14 @@ Next, add another `print()` call and pass the string `'2. List all expenses'`. # --hints-- -You should have `print('2. List all expenses')` in your `while` loop. +You should print `'2. List all expenses'` in your `while` loop after the existing `print()` calls. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')2\.\sList\sall\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index 070c4436d48..662e4d59211 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -1,53 +1,44 @@ --- id: 65824c7b4e2da85597693dcf -title: 步驟 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- # --description-- -Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. +Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. Keep adding the `print()` calls in order. # --hints-- You should have `print('3. Show total expenses')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')3\.\sShow\stotal\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('4. Filter expenses by category')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')4\.\sFilter\sexpenses\sby\scategory\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('5. Exit')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')5\.\sExit\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')", "print('5. Exit')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index 39073ba36e8..6c5f7e20351 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -1,6 +1,6 @@ --- id: 65824dfdb6815d563b2d3256 -title: 第 28 步 +title: Step 29 challengeType: 20 dashedName: step-29 --- @@ -13,17 +13,18 @@ Inside your `while` loop, call the `input()` function passing the string `'Enter # --hints-- -You should have `choice = input('Enter your choice: ')` in your `while` loop. +You should declare a variable named `choice` within your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+choice\s*=\s*input\s*\(\s*("|')Enter\syour\schoice:\s\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].has_variable("choice") +`)) }) +``` + +You should assign the result of the `input()` function, with the string `'Enter your choice: '` as its argument, to your `choice` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_variable("choice").is_equivalent("choice = input('Enter your choice: ')") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 2d379924259..8f20aa4cf58 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -1,6 +1,6 @@ --- id: 6582507654b3ed5712341382 -title: 步驟 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- @@ -15,30 +15,27 @@ Inside the `if` statement body, declare a variable `amount` and assign it an emp # --hints-- -You should have `if choice == '1':` in your `while` loop: +You should create an `if` statement that checks if `choice` is equal to `'1'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[0] +cond.is_equivalent("choice == '1'") or cond.is_equivalent("'1' == choice") +`)) }) ``` -You should have `amount = input()` in your `if` statement body: +You should declare a variable named `amount` in your `if` statement body. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("amount") +`)) }) +``` + +You should assign an empty `input()` call to your `amount` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input()") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index 150c207bf94..15f326cb257 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -1,6 +1,6 @@ --- id: 658252f6b1526d57b103d48a -title: 第 30 步 +title: Step 31 challengeType: 20 dashedName: step-31 --- @@ -13,17 +13,11 @@ Pass the string `'Enter amount: '` to your empty `input()` call, so you can stor # --hints-- -You should have `amount = input('Enter amount: ')` in your `if` statement. +You should pass `'Enter amount: '` to the `input()` call assigned to the `amount` variable. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*("|')Enter amount:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input('Enter amount: ')") +`)) }) ``` # --seed-- @@ -44,7 +38,6 @@ def total_expenses(expenses): def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) ---fcc-editable-region-- def main(): expenses = [] while True: @@ -56,7 +49,7 @@ def main(): print('5. Exit') choice = input('Enter your choice: ') - +--fcc-editable-region-- if choice == '1': amount = input() --fcc-editable-region-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index 5a1dd9bf72f..275d3f75aac 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -1,6 +1,6 @@ --- id: 658254db6e12485a48130f57 -title: 步驟 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- @@ -13,17 +13,11 @@ Pass `input('Enter amount: ')` to the `float()` function. # --hints-- -You should have `amount = float(input('Enter amount: '))` in your `if` statement. +You should pass `input('Enter amount: ')` to the `float()` function in the assignment of `amount`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = float(input('Enter amount: '))") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index ea6c1c705fe..0249ed79c87 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -1,27 +1,26 @@ --- id: 658255d5f955175b270f251d -title: 步驟 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- # --description-- -Inside your `if` statement, create a variable `category` to store the expense category. Assign it `input('Enter category: ')`. +Inside your `if` statement, create a variable named `category` to store the expense category. Assign it a call to `input()` and use the `'Enter category: '` as the argument. # --hints-- -You should have `category = input('Enter category: ')` in your `if` statement. +You should declare a variable named `category` in your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("category")`)) }) +``` + +You should assign `input('Enter category: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("category").is_equivalent("category = input('Enter category: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index e24e24f626d..fd25bf41ee6 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -1,13 +1,13 @@ --- id: 6582575b8089f85b8b92d7c8 -title: 步驟 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- # --description-- -After getting the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. +Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. @@ -17,17 +17,22 @@ After getting the `amount` and `category` using `input()`, call the `add_expense # --hints-- -You should have `add_expense(expenses, amount, category)` in your `if` statement. +You should call the `add_expense()` function within your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)\s*add_expense\s*\(\s*expenses\s*,\s*amount\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_calls("add_expense")) == 1`)) }) +``` + +You should pass three arguments to your `add_expense()` call: `expenses`, `amount`, and `category`. The order matters. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_call("add_expense(expenses, amount, category)")`)) }) +``` + +Your `add_expense()` call should come after the assignment of `amount` and `category`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].is_equivalent("amount = float(input('Enter amount: '))\\ncategory = input('Enter category: ')\\nadd_expense(expenses, amount, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index 02d05e97463..7ca152b9bde 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -1,42 +1,31 @@ --- id: 658258c0e5fbe85c14c060cf -title: 步驟 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- # --description-- -To list all expenses, you can use an `elif` statement after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. +To list all expenses, you can use an `elif` clause after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. -Create an `elif` statement to check if the user's choice equals the string `2`. Inside the `elif` statement, print the string `'\nAll Expenses:'`. +Create an `elif` clause to check if the user's choice equals the string `'2'`. Inside the `elif` clause, print the string `'\nAll Expenses:'`. # --hints-- -You should have `elif choice == '2':` after your `if` statement. +You should create an `elif` clause that checks that `choice` is equal to `'2'` after your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[1] +cond.is_equivalent("choice == '2'") or cond.is_equivalent("'2' == choice") +`)) }) ``` -You should have `print('\nAll Expenses:')` inside your `elif` statement. +You should print `'\nAll Expenses:'` inside your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index 7d61ca18208..0bc3402cf58 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -1,6 +1,6 @@ --- id: 65825a9520a0795c8afbef50 -title: 步驟 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- @@ -11,17 +11,16 @@ After the `print()` call, call the `print_expenses` function to display all the # --hints-- -You should have `print_expenses(expenses)` in your `elif` statement. +You should call the `print_expenses()` function within your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)\s*print\s*_expenses\s*\(\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].find_calls("print_expenses")) == 1`)) }) +``` + +You should pass the `expenses` list as the argument to your `print_expenses()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print_expenses(expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index f0a4a78e443..6c1297bc068 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -1,6 +1,6 @@ --- id: 65825b758fe85a5cebabc8c5 -title: 步驟 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- @@ -13,30 +13,19 @@ If it's true, it means the user wants to see the total expenses. So call `print( # --hints-- -You should have `elif choice == '3':` in your code. +You should create an `elif` clause that checks if `choice == '3'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert.match(function_body, /\s+elif\s+choice\s*==\s*("|')3\1\s*:/); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[2] +cond.is_equivalent("choice == '3'") or cond.is_equivalent("'3' == choice") +`)) }) ``` -You should have `print('\nTotal Expenses: ', total_expenses(expenses))` in your `elif` statement. +You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')3\1\s*:\s*print\s*\(\s*("|')\\nTotal\sExpenses:\s\2\s*,\s*total_expenses\s*\(\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[2].has_call("print('\\\\nTotal Expenses: ', total_expenses(expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index 4f27c510ec6..676b0ec42f7 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -1,40 +1,35 @@ --- id: 65825cda2668995d5168e37c -title: 步驟 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- # --description-- -Create another `elif` statement that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. +Create another `elif` clause that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. # --hints-- -You should have `elif choice == '4':` in your code. +You should create an `elif` clause that checks if `choice == '4'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[3] +cond.is_equivalent("choice == '4'") or cond.is_equivalent("'4' == choice") +`)) }) ``` -You should have `category = input('Enter category to filter: ')` in your new `elif` statement. +You should declared a variable named `category` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("category")`)) }) +``` + +You should assign `input('Enter category to filter: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("category").is_equivalent("category = input('Enter category to filter: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index d190a82f278..d354cb667cb 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -1,6 +1,6 @@ --- id: 65825e96b5db5f5dee6bf57c -title: 步驟 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- @@ -11,17 +11,10 @@ After getting the category, print the following f-string `f'\nExpenses for {cate # --hints-- -You should print `f'\nExpenses for {category}:'` inside the `elif` statement. +You should print `f'\nExpenses for {category}:'` after the assignment of `category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index 6bef05673a8..669de4ae215 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -1,6 +1,6 @@ --- id: 6582601b2987045e8e7da994 -title: 步驟 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- @@ -11,17 +11,22 @@ After your `print()` call, you need to filter the expenses and print the filtere # --hints-- -You should have `expenses_from_category = filter_expenses_by_category(expenses, category)` in your `elif` statement. +You should declare a variable named `expenses_from_category` in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("expenses_from_category")`)) }) +``` + +You should call `filter_expenses_by_category()` passing `expenses` and `category` as the arguments and assign it to your `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("expenses_from_category").is_equivalent("expenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) +``` + +Your `expenses_from_category` variable should come after the `print()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index 99e383ad03c..4801aa6d338 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -1,27 +1,26 @@ --- id: 6582622cb6c11a5f4c5d79b4 -title: 步驟 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- # --description-- -Still within the `elif` statement, pass `expenses_from_category` iterator to a `print_expenses` call. +Still within the `elif` clause, pass the `expenses_from_category` iterator to a `print_expenses` call. # --hints-- -You should have `print_expenses(expenses_from_category)` in your code. +You should call `print_expenses()` passing `expenses_from_category` as the argument in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)\s*print_expenses\s*\(\s*expenses_from_category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_call("print_expenses(expenses_from_category)")`)) }) +``` + +Your `print_expenses()` call should come after the `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)\\nprint_expenses(expenses_from_category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index 725990d0810..911a95cf962 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -1,42 +1,31 @@ --- id: 6582687859366a618424d84b -title: 步驟 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- # --description-- -To provide a way to exit the program, use another `elif` statement to check if `choice` equals the string `'5'`. +To provide a way to exit the program, use another `elif` clause to check if `choice` equals the string `'5'`. -Inside the new `elif` statement, print the string `'Exiting the program.'` to show that the program is terminating its execution. +Inside the new `elif` clause, print the string `'Exiting the program.'` to show that the program is terminating its execution. # --hints-- -You should have `elif choice == '5':` in your code. +You should create an `elif` clause that checks if `choice == '5'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4] +cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice") +`)) }) ``` -You should print `'Exiting the program.'` in your new `elif` statement. +You should print `'Exiting the program.'` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:\s*print\s*\(\s*("|')Exiting\sthe\sprogram.\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 263ed016ac2..712c3072018 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -1,27 +1,20 @@ --- id: 65826a6e9d189a623141c726 -title: 步驟 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- # --description-- -Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` statement. +Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` clause. # --hints-- -You should have a `break` statement inside your last `elif`. +You should have a `break` statement after the `print()` call inside your last `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+break/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].is_equivalent("print('Exiting the program.')\\nbreak")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index d251584867d..f2fec123e71 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -1,13 +1,15 @@ --- id: 65826af5b226a5628aa154b1 -title: 第 43 步 +title: Step 44 challengeType: 20 dashedName: step-44 --- # --description-- -Finally, call your `main()` function, and try the expense tracker program. +Finally, call your `main()` function, and try the expense tracker program in the console. + +With that, the expense tracker project is complete! # --hints-- @@ -74,3 +76,58 @@ def main(): --fcc-editable-region-- ``` + +# --solutions-- + +```py +def add_expense(expenses, amount, category): + expenses.append({'amount': amount, 'category': category}) + +def print_expenses(expenses): + for expense in expenses: + print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') + +def total_expenses(expenses): + return sum(map(lambda expense: expense['amount'], expenses)) + +def filter_expenses_by_category(expenses, category): + return filter(lambda expense: expense['category'] == category, expenses) + + +def main(): + expenses = [] + while True: + print('\nExpense Tracker') + print('1. Add an expense') + print('2. List all expenses') + print('3. Show total expenses') + print('4. Filter expenses by category') + print('5. Exit') + + choice = input('Enter your choice: ') + + if choice == '1': + amount = float(input('Enter amount: ')) + category = input('Enter category: ') + add_expense(expenses, amount, category) + + elif choice == '2': + print('\nAll Expenses:') + print_expenses(expenses) + + elif choice == '3': + print('\nTotal Expenses: ', total_expenses(expenses)) + + elif choice == '4': + category = input('Enter category to filter: ') + print(f'\nExpenses for {category}:') + expenses_from_category = filter_expenses_by_category(expenses, category) + print_expenses(expenses_from_category) + + elif choice == '5': + print('Exiting the program.') + break + +main() + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index 841b08e046b..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: 步驟 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index 860bc963d1c..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: 步驟 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index 72d2840f23d..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: 步驟 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index 86a0dd8f074..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: 步驟4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index e3819fdb4c3..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: 步驟 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index b41b9c66aa8..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: 步驟6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index 99a26cf0f52..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: 步驟 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index a6621076423..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: 步驟 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index 432780318cc..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: 步驟 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index 574c8e7ab48..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: 步驟 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index 70265beffa9..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: 步驟 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index 9a76de4260f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: 步驟 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 85d9408e1d8..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: 步驟 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 0d4b40675b9..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: 第 14 步 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index fc62f5ee1f9..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: 步驟15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index 3b83765bc96..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: 步驟 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index 5374e9ac347..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: Step 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index f00c61bc3b6..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: 步驟 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index f057182ec77..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: 步驟 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index 0a6b9765469..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: 步驟21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index 0d8c73f1f1a..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: 步驟 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index ccc6ba3c5ce..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: 步驟-23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index aea064daed3..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: 步驟 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Write another `if` statement that checks if the target key is less than the key of the current node. - -Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. - -# --hints-- - -You should write another `if` statement to check if `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -You should return `self._search(node.left, key)` from your new `if` block. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index 69277ffa046..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: 步驟 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index b1735f39c21..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: 步驟 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index d3c2dad9d7d..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: 步驟 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 1bf42c4c16b..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: 步驟 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index 75422dea2a0..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: 第 28 步 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index 4b30a76f804..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: 步驟 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index 1617cf6d8da..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: 第 30 步 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index 97ddeba35c5..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: 步驟 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index d75b466007a..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: 步驟 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index 29dffbf964f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: 步驟 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index 0b4cc081b46..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: 步驟 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Remember to use the `pass` keyword. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index 8a9b911e4e7..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: 步驟 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index 602634dff49..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: 步驟 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index 8877d2ebd95..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: 步驟 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index 943721b5973..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: 步驟 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index 675dcc4361f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: 步驟 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index 17e342bc29d..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: 步驟 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index 94f33a22b21..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: 步驟 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index 69cb47b889f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: 步驟 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index 75e13ea544a..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: 第 43 步 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index b4d5d4c1a17..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: 步驟 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index 89d5dcebbc6..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: 步驟 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index 96e151c8d83..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: 步驟 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index 9b80d8888e9..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: 步驟 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index c9bebc6879f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: 步驟 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index 87a17caa633..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: 步驟 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index 3fee614b1c2..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: 步驟 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index db3887a0265..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: 第 52 步 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index bd453c8841a..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: 步驟 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index 67842a8c2db..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: 第 54 步 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index 72b00926f22..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: 步驟 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 331221c9083..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: 步驟 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index 20dc46d965c..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: 步驟 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index e76eeda5686..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: 步驟 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index d92029bf10c..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: 步驟 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index 8102571a789..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: 步驟 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index a2b74828cf2..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: 步驟 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index f88cffcd679..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: 步驟 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index 1bf6355830f..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: 算術格式化 -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -小學生經常把算術題垂直排列,這樣更容易解決。 例如,“235 + 52” 變成: - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. 該函數應該接受可選的第二個參數。 當第二個參數設置爲 `True` 時,應顯示答案。 - -## 示例 - -函數調用: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -輸出: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -函數調用: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -輸出: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## 規則 - -如果提供的問題格式正確,該函數將返回正確的轉換,否則,它將 **返回** 一個 **字符串** 來描述對用戶有意義的錯誤。 - -- 會返回錯誤的情況: - - 如果提供給函數的**問題過多**。 The limit is **five**, anything more will return: `'Error: Too many problems.'` - - 函數可以接受的運算符是**加法**和**減法**。 乘法和除法將返回錯誤。 本要點中未提及的其他運算符將不需要進行測試。 The error returned will be: `"Error: Operator must be '+' or '-'."` - - 每個數字(操作數)應該只包含數字。 Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - 每個操作數(即運算符每一側的數字)的寬度最多爲四位數字。 Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- 如果用戶提供了正確格式的問題,返回的轉換將遵循以下規則: - - 操作符和兩個操作數中最長的一個之間應該有一個空格,操作符將與第二個操作數在同一行,兩個操作數的順序與提供的相同(第一個是上面的,第二個是下面的)。 - - 數字應該右對齊。 - - 每個問題之間應該有四個空格。 - - 每個問題的底部都應該有破折號。 破折號應該單獨沿着每個問題的整個長度延伸。 (上面的例子展示了這應該是什麼樣子。) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index 55adb70c2c6..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: 預算應用 -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. 它應該能夠根據不同的預算類別實例化對象,例如 *食物* 、 *服裝* 和 *娛樂* 。 創建對象時,它們以類別的名稱傳遞。 該類應該有一個名爲 `ledger` 的實例變量,它是一個列表。 該類還應包含以下方法: - -- 接受金額和描述的 `deposit` 方法。 如果沒有給出描述,它應該默認爲一個空字符串。 該方法應以 `{"amount": amount, "description": description}` 的形式將對象附加到賬本列表。 -- `withdraw` 方法類似於 `deposit` 方法,但傳入的金額應作爲負數存儲在賬本中。 如果沒有足夠的資金,則不應向賬本添加任何內容。 如果取款發生,此方法應返回 `True`,否則返回 `False`。 -- `get_balance` 方法,根據發生的存款和取款返回預算類別的當前餘額。 -- `transfer` 方法,它接受一個金額和另一個預算類別作爲參數。 該方法應添加帶有金額和描述 “Transfer to [目的地預算類別]”的提款。 然後,該方法應將存款添加到其他預算類別,其金額和描述爲 “Transfer from [來源預算類別]”。 如果沒有足夠的資金,則不應向任一賬本添加任何內容。 如果轉賬發生,此方法應返回 `True`,否則返回 `False`。 -- 接受金額作爲參數的 `check_funds` 方法。 如果金額大於預算類別的餘額,則返回 `False`,否則返回 `True`。 `withdraw` 方法和 `transfer` 方法都應該使用此方法。 - -打印預算對象時,它應顯示: - -- 30 個字符的標題行,類別名稱居中在一行 `*` 字符中。 -- 賬本中的項目列表。 每行應顯示描述和金額。 應顯示描述的前 23 個字符,然後是金額。 金額應右對齊,包含兩位小數,最多顯示 7 個字符。 -- 一行顯示類別總數。 - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -除了 `Category` 類之外,創建一個名爲 `create_spend_chart` 的函數(在類之外),它將類別列表作爲參數。 它應該返回一個作爲條形圖的字符串。 - -該圖表應顯示在傳遞給函數的每個類別中花費的百分比。 花費的百分比應該只計算取款而不是存款。 圖表左側應該是標籤 0 - 100。 條形圖中的“條”應由“o”字符組成。 每個條形的高度應四捨五入到最接近的 10。 條形圖下面的水平線應該超過最後一個條形圖再多兩個空格。 每個類別名稱應垂直寫在欄下方。 頂部應該有一個標題,上面寫着“Percentage spent by category”。 - -此功能將使用最多四個類別進行測試。 - -仔細查看下面的示例輸出,並確保輸出的間距與示例完全匹配。 - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 0c63dc07a39..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: 多邊形面積計算器 -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Rectangle 類 - -創建 Rectangle 對象時,應使用 `width` 和 `height` 屬性對其進行初始化。 該類還應包含以下方法: - -- `set_width` -- `set_height` -- `get_area`:返回面積(`width * height`) -- `get_perimeter`:返回周長(`2 * width + 2 * height`) -- `get_diagonal`:返回對角線(`(width ** 2 + height ** 2) ** .5`) -- `get_picture`:返回一個字符串,該字符串使用包含 “\*” 的行來表示形狀。 行數應等於高度,每行中 “\*” 的數量應等於寬度。 每行末尾應該有一個新行(`\n`)。 如果寬度或高度大於 50,則應返回字符串:“Too big for picture.”。 -- `get_amount_inside`:以另一個形狀(正方形或矩形)作爲參數。 返回傳入的形狀可以裝進該形狀的次數(沒有旋轉)。 例如,一個寬爲 4、高爲 8 的矩形可以放入兩個邊長爲 4 的正方形。 - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Square 類 - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## 使用示例 - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -該代碼應該返回: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index 6283508453a..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: 概率計算器 -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -假設有一頂帽子,裏面有 5 個藍球、4 個紅球和 2 個綠球。 隨機抽取的 4 個球中至少包含 1 個紅球和 2 個綠球的概率是多少? 雖然可以使用高等數學來計算概率,但更簡單的方法是編寫一個程序來執行大量實驗來估計近似概率。 - -對於這個項目,你將編寫一個程序來確定從帽子中隨機抽取某些球的大致概率。 - -First, create a `Hat` class in `main.py`. 該類應該採用可變數量的參數來指定帽子中每種顏色的球數。 例如,可以通過以下任何一種方式創建類對象: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -一頂帽子總是至少有一個球。 創建時傳遞給 hat 對象的參數應轉換爲 `contents` 實例變量。 `contents` 應該是一個字符串列表,其中包含帽子中每個球的一個項目。 列表中的每一項都應該是一個顏色名稱,代表該顏色的單個球。 例如,如果你的帽子是 `{"red": 2, "blue": 1}`,`contents` 應該是 `["red", "red", "blue"]`。 - -`Hat` 類應該有一個 `draw` 方法,該方法接受一個參數,該參數指示要從帽子中抽取的球數。 此方法應該從 `contents` 中隨機刪除球,並將這些球作爲字符串列表返回。 在抽取過程中球不應回到帽子中,類似於沒有放回的黑盒實驗。 如果要抽的球數量超過可用數量,則返回所有球。 - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). 此函數應接受以下參數: - -- `hat`:一個包含球的帽子對象,應該在函數內複製。 -- `expected_balls`:一個對象,指示嘗試從帽子中抽取的確切球組以進行實驗。 例如,要確定從帽子中抽取 2 個藍球和 1 個紅球的概率,將 `expected_balls` 設置爲 `{"blue":2, "red":1}`。 -- `num_balls_drawn`:每次實驗中從帽子中抽出的球數。 -- `num_experiments`:要執行的實驗數量。 (進行的實驗越多,近似概率就越準確。) - -`experiment` 函數應該返回一個概率。 - -例如,如果你想確定當你從一個包含 6 個黑球、4 個紅球和 3 個綠球的帽子中抽出 5 個球時,至少得到 2 個紅球和 1 個綠球的概率, 你將進行 `N` 次實驗,記錄其中你至少得到 2 個紅球和 1 個綠球的次數 `M`,並估計概率爲 `M/N`。 每個實驗都包括從一個裝有指定球的帽子開始,抽出幾個球,並檢查你是否抽到了你試圖抽出的球。 - -以下是基於上面的示例調用 `experiment` 函數的方法,其中包含 2000 個實驗: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -由於這是基於隨機抽取的,因此每次運行代碼時概率會略有不同。 - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index 1f74f1a4066..00000000000 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: 時間計算器 -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -編寫一個名爲 `add_time` 的函數,它接受兩個必需參數和一個可選參數: - -- 12 小時制的開始時間(以 AM 或 PM 結束) -- 指示小時數和分鐘數的持續時間 -- (可選)一週的開始日期,不區分大小寫 - -該函數應將持續時間添加到開始時間並返回結果。 - -如果結果是第二天,它應該在時間之後顯示 `(next day)`。 如果結果將超過一天以後,它應該在時間後面顯示 `(n days later)`,其中 "n "是之後的天數。 - -如果給函數提供了可選的開始日期的星期參數,則輸出應顯示結果的星期幾。 輸出中的星期幾應出現在時間之後和天數之前。 - -以下是函數應處理的不同情況的一些示例。 請注意結果的間距和標點符號。 - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -不要導入任何 Python 庫。 假設開始時間是有效時間。 持續時間中的分鐘將是小於 60 的整數,但小時可以是任何整數。 - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index 1c1b8060094..bf1c6efd8f6 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -在這個項目中,你將通過創建一個咖啡館菜單來學習 CSS(層疊樣式表)的基礎知識。 CSS 是一種用於設置 HTML 文檔樣式的語言。 它描述了 HTML 元素在屏幕上的顯示方式。 +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS 是一種用於設置 HTML 文檔樣式的語言。 它描述了 HTML 元素在屏幕上的顯示方式。 正如你在 Cat Photo App 的最後幾個步驟中所學習的那樣,開始構建你的網頁需要一個基本結構。 每個 HTML 文檔都應包含 `DOCTYPE` 聲明和 `html` 元素。 `DOCTYPE` 告訴瀏覽器文檔的 HTML 版本。 而 `html` 元素代表根元素,它包含所有其他元素。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md index 527d929633d..6592161e96e 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md @@ -15,7 +15,7 @@ HTML 屬性是寫在一個元素的開始標籤中的特殊詞彙, ``` -在現有的 `img` 元素中,添加一個具有以下 URL 的 `src` 屬性: +Inside the existing `img` element, add a `src` attribute with this URL: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` @@ -27,7 +27,7 @@ HTML 屬性是寫在一個元素的開始標籤中的特殊詞彙, assert(document.querySelector('img')); ``` -你的 `img` 元素應該有一個 `src` 屬性。 你可能忽略了屬性或者有拼寫錯誤。 請確保元素名稱和屬性名稱之間有一個空格。 +Your `img` element should have a `src` attribute. 你可能忽略了屬性或者有拼寫錯誤。 請確保元素名稱和屬性名稱之間有一個空格。 ```js assert(document.querySelector('img').src); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md index be958b1ae13..f98294d1f9c 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md @@ -21,7 +21,7 @@ dashedName: step-15 # --hints-- -`img` 元素的 `src` 屬性值應爲 `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`。 你可能不小心刪除了它。 +You should have an `img` element with a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. 你可能不小心刪除了它。 ```js assert( diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md index bfd3a923f17..b1f6778b10b 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -在無序列表之後,添加一個新圖像,它具有 `src` 屬性,值爲: +After the unordered list, add a new image with a `src` attribute value set to: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` @@ -40,13 +40,13 @@ assert( ); ``` -新圖像沒有 `src` 屬性。 請檢查在開始標籤的名稱後面要有一個空格,且所有的屬性名稱前面也要有一個空格。 +The new image does not have a `src` attribute. 請檢查在開始標籤的名稱後面要有一個空格,且所有的屬性名稱前面也要有一個空格。 ```js assert($('section')[1].lastElementChild.hasAttribute('src')); ``` -新圖像的 `src` 值應爲 `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`。 確保將 `src` 屬性的值放在引號中。 +The new image should have a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. 確保將 `src` 屬性的值放在引號中。 ```js assert( diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index 9018d21460f..1587b826ece 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -38,7 +38,7 @@ assert( ); ``` -第三張圖像應該有一個 `src` 屬性設置爲 `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`。 +The third image should have a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index e6fa32cae46..8b4c8de55de 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -Inside your `.cat-left-ear` element, create another `div` element with the class `cat-left-inner-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -You should not change the existing `div` element with the class `cat-left-ear`. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -You should have a `div` element inside your `.cat-left-ear` element. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -Your `div` element should have the class `cat-left-inner-ear`. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index 921bc87f6f9..00000000000 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: 步驟 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Inside your `.cat-right-ear` element, create another `div` element with the class `cat-right-inner-ear`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-right-ear`. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -You should have a `div` element inside your `.cat-right-ear` element. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index 08266a854fd..ee0caae40bc 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: 步驟-23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index 40f5520adf2..ce53081aac5 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: 步驟 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index a6c25a6863f..538628138c5 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: 步驟 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index 0392a358124..697d05881cf 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: 步驟 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index 643ca8fced5..b37aa9386b2 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: 步驟 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index 5e4171a1572..a15d11652bd 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: 第 28 步 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index 84127f9d0a6..728e81fbcde 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: 步驟 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ As you did for the left ear, rotate the right ear at 45 degrees. # --hints-- -You should set the `transform` property of your `.right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. +You should set the `transform` property of your `.cat-right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index c35b3bdc5d8..bcd8818718c 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: 第 30 步 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index bac51e9d710..1c5bed7e7e1 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: 步驟 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ The ears should always be placed above the part of the head it overlaps. You can `z-index` is a property you can use to define the order of overlapping HTML elements. Any element with a higher `z-index` will always be positioned over an element with a lower `z-index`. -To see `z-index` in action, set the `z-index`property of the left ear to `-1`. +To see `z-index` in action, set the `z-index` property of the left ear to `-1`. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index 1ba991e8f53..bb3dcf1a0ed 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: 步驟 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index bb51d4a82e4..3b3efbf0154 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,13 +1,13 @@ --- id: 646cfde6ac612e5d60391f50 -title: 步驟 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- -Set the `z-index`property of the right ear to `1` so it always stays over the head. +Set the `z-index` property of the right ear to `1` so it always stays over the head. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index 83af58215c0..946620f1758 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: 步驟 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index bf03673d7c0..963468c2e2d 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: 步驟 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index 55b5042ca71..14a5d7aeaf6 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: 步驟 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index 0a36fdaa3c7..c2f979d3992 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: 步驟 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index 75fa8f13d2d..625e32f4b04 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: 步驟 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index b6c46c7fa88..cd41b1ae9d5 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: 步驟 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index 059f6ba84c4..f3a52b3a435 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: 步驟 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- You will now start working on the cat's eyes. Like the ears, the eyes will have inner eyes. -Create a `div` element with the class `cat-eyes`. Inside the `cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. +Create a `div` element with the class `cat-eyes`. Inside the `.cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index 4200ca45a68..798380e5aff 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -2,7 +2,7 @@ id: 646ddd3f9f97a0667b964bdb title: 步驟 41 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index c6915975ecb..00000000000 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: 步驟 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -Inside the `.cat-right-eye` element, create another `div` element with the class `cat-right-inner-eye`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-left-eye`. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -You should have a `div` element inside your `.cat-right-eye` element. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index cb453db2aa4..3025f51126d 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: 第 43 步 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index 8397646baba..e3805aff89c 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: 步驟 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Move the left eye into position with a `position` property of `absolute` a `top` of `54px`, and a `left` of `39px`. +Move the left eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `39px`. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index 6394f8c4947..eeb4f6d36ea 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: 步驟 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index 8894b988b8e..aeb0f28cdfb 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: 步驟 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index 797022b41d6..07eb2b5743c 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: 步驟 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index b71cdc95d91..1653bbb1dc4 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: 步驟 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index 9f421d39e30..6a3aa491180 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: 步驟 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index 82ad845be0b..c236ed959a2 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: 步驟 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index d9db65402bb..256aa6b6f3c 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: 步驟 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index 596944e95a4..7905c64a22e 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -2,7 +2,7 @@ id: 646dec359bef3b7811fba5a6 title: 第 52 步 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index b9b50b1650d..a0de0ab995e 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: 步驟 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index d96d199d908..fd22b0e9cc9 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: 第 54 步 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index a9f6dce8995..b8f6c676584 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: 步驟 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index dc36bf74912..a22b558dcdb 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: 步驟 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index 7182d3c593f..b4ad71b5cf1 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: 步驟 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -13,13 +13,13 @@ Create a `div` element with the class `cat-mouth`. # --hints-- -You should create a `div` element. +You should create a `div` element. ```js assert(document.querySelectorAll('div').length === 13) ``` -Your `div` element should have the class `cat-mouth` +Your `div` element should have the class `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index d767e9d7497..3a67bcd4a44 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: 步驟 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index de64786060e..37ce01315b7 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: 步驟 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ Using a class selector, give your `.cat-mouth-line-left` element a `position` of # --hints-- -You should have a `cat-mouth-line-left` selector. +You should have a `.cat-mouth-line-left` selector. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index 369086c49b5..1afaafa8827 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: 步驟 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- @@ -11,7 +11,7 @@ Using the `transform` property, rotate the left mouth line at `170` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(170deg)`. +Your `.cat-mouth-line-left` selector should have a `transform` property set to `rotate(170deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')?.transform === 'rotate(170deg)') diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index cb399bd4f62..a60c0d8e84f 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: 步驟 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index cfccea1979d..cac8db8cac6 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: 步驟 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ Rotate the right mouth line at `165` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(165deg)`. +Your `.cat-mouth-line-right` selector should have a `transform` property set to `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index 795e01d1eae..aa23dfd3734 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: 步驟 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index 10264488dac..52589e4e58a 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -2,7 +2,7 @@ id: 646f0ef13604420a8744f7d4 title: 第 66 步 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index 08235af3841..27c8d1b7436 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: 步驟 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index c01cda7c775..2deb1876a86 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: 步驟 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index 283c7029ae5..77ba6057c0d 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: 步驟 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index f00538078b1..c01636a6571 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: 步驟 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index 05a4e774084..be472910e42 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: 步驟 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index edfb1ffd405..d0c12963155 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: 步驟 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index d32b52414ae..3d226cf8361 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: 步驟 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index bff49b92a3e..131eb4c27a7 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: 步驟 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index 51b8045fd8b..25b09b6b780 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: 步驟 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index b8947fa24fe..ae6fe0da1e7 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: 步驟 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index 3f1dac7800d..51e0a54f9d3 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: 步驟 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index 1ce31eaf085..3b1df51c87b 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: 步驟 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Use a class selector to target the `cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. +Use a class selector to target the `.cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index 0f5774dc9b7..74373bf86a8 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: 步驟 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index dfdf5cf086f..dc4cc6ac10e 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: 第 81 步 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index 02ad4a281ba..b26c9df7044 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: 步驟 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index bc8f8a9f87c..ae0af39f7c1 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 You should now center the cat head. -Give the `.cat-head` element a position property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. +Give the `.cat-head` element a `position` property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/649353647c44ef4867ab4935.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/649353647c44ef4867ab4935.md index a7a70f95a81..6cd73796dd5 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/649353647c44ef4867ab4935.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/649353647c44ef4867ab4935.md @@ -1,6 +1,6 @@ --- id: 649353647c44ef4867ab4935 -title: Step 17 +title: 步驟 17 challengeType: 0 dashedName: step-17 --- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 201952216fc..133bb34ac00 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: 步驟 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index 3e0f9419df3..5d7ac81d6d9 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: 步驟 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index 4f7e1be7fd0..0e5e0a21549 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: 步驟 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 96ea7d44228..79f7a6fca80 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index 85204e7aa09..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: 步驟-23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Finally, return the value of `median`. - -Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. However, it is important to remember that shorter code is not always better code. In this case, reducing the lines of code would make the code harder to read and understand, impacting future maintainability. - -# --hints-- - -Your `getMedian` function should return the value of `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index 03e158c1b56..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: 步驟-23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index 1f38cd3cf07..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: 步驟 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 97982d46cf3..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: 步驟 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index aa45ba920c2..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: 步驟 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index 4bc7b60bb5f..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: 第 28 步 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index 63fc62d69b5..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: 步驟 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index 2284f680ec6..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: 第 30 步 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index 413aff88cef..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: 步驟 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index 27a4cdd863f..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: 步驟 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -You should return `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index aec48f09949..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: 步驟 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -You should have a constant called `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index 4f946b75540..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: 步驟 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index 25c7bcb2449..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: 步驟 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..beae8d80197 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index 9327465ded6..fbee3883a78 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index 4508ef3ecff..7de2ada22be 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index 0f72920e37b..bd7c0704f60 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index 83ae7d85195..9fcda740d19 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index 1d1efa6605d..7298faee651 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index 859b02d8386..0ef849b90c2 100644 --- 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 @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index 81b205fb7f1..d7b9972c3b2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index 9a7c8c50187..184cd48de85 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index bb995134b99..209f9dcaed9 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index a96d892c2f1..26d0c5db0a2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index 4063941f3f2..082f034cc5f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index e4387a8ce39..8b6bdcac752 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index 2c3d745f111..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: 步驟 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -變量可以被賦予一個值。 當你聲明變量時,這個步驟叫作初始化。 例如: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Initialize your `xp` variable to have a value of `0`, a number. - -# --hints-- - -`xp` should have a value of `0`. - -```js -assert.equal(xp, 0); -``` - -You should initialize the `xp` variable to `0`. Don't forget the semi-colon at the end of the line. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index b1ee9f63bf2..73a5505efc8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Create another variable called `currentWeapon` and set it to `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -You should use `let` to declare a variable called `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` 你應使用駝峯命名法來命名你的變量。 ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -你的 `currentWeapon` 變量值應設爲 `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` 你應將你的變量的值初始化爲 `0`。 ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index e3ddfecdd63..7644b3335ba 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index cac8dce6568..04d0f443b6a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index 3ff489c2184..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: 步驟 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -The variables you have assigned have all had values that are numbers. JavaScript has multiple different data types. The next one you will use is the string. Strings are used to store things like words or text. Strings are surrounded with double quotes, single quotes, or backticks. Here is an example of declaring a variable with a string: - -```js -let developer = "Naomi"; -``` - -Assign the `inventory` variable to have the value of `stick`. - -# --hints-- - -You should set `inventory` to the string `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -You should initialize your `inventory` variable with the string `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index f819e08a566..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: 步驟 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -The player's inventory in your game will be able to hold multiple items. You will need to use a data type that can do this. An array can be used to hold multiple values. For example: - -```js -let order = ["first", "second", "third"]; -``` - -This is an array which holds three values. Notice how the values are separated by commas. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -Your `inventory` variable should be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should have three values. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -Your `inventory` variable should have the values in the correct order. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index 34244e6de0f..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: 第 14 步 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -Your `inventory` variable should still be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should only have one value. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index efc85940e02..81aa012e484 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index 63b8f3a8475..9caf7e829c1 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index 491cbbb3fe3..01d81e0c3b4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index 88bcd739238..4e05e0cab79 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index 598f36c44f5..2e866e8b8fd 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 32cd3d6a758..1a0976099be 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index 0d1dfed3a01..3797e2709d6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 902edafc6b3..8236d006fdf 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 2638ce9ae52..ecd7b41e551 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 46025e90ee2..4899b136971 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index 9c32e8c1252..8296895dd81 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 7c76591109f..1e0c4282c4f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 2be712694cf..a5fcd2f1dec 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index cc90d211dd4..6040d1028d3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index b0dfcbb9d7b..2998105596f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index d1a2df0ea4b..1210d1b0e3b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 5b43ac85352..752b1671817 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index 02f094a4ab2..a33ca1269a2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index 353d61ea5b0..9fa40be79c3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 1841ae43c76..25e82fda63c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 1a4ddfa7458..14eefc67a6e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index 23ce6658504..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: 步驟 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -Object properties are written as `key: value` pairs, where `key` is the name of the property (or the key), and `value` is the value that property holds. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"town square"`. - -# --hints-- - -Your first value of `locations` should be an object. - -```js -assert.isObject(locations[0]); -``` - -Your first value of `locations` should have a `name` property. - -```js -assert.isDefined(locations[0].name); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index 12891538908..6474b8db7c7 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index c318e051bc8..4ed6343fd96 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 4337bbb7817..442032d8950 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index 84e25aa3479..75a9b22ce50 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index b3d8e3a6ced..cb2e7bdaeaa 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 76419553abe..05f08bb6a19 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 6a2fd6dd18e..60ab0a2b874 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index ee22bd5db18..44fd2f7eb9c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index 42fa1b7156b..1dc5232b378 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 6df6d825b45..b54ee029164 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index 64dbdadcc64..5dbb6907d42 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index 69288ecb4e1..88610822650 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index 0bc2ea4f339..9eecaaee678 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index 7e8b7d6f71e..1848eab1431 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index cb1dab4a818..dda03f4aa4a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 87f4686de53..1b71205f170 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index b0c4f008224..eb77b88b3b0 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 7f9be4c607c..10e1f6ce3fa 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 43844bfd6fa..2ea876ddf24 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index 407ef30337e..addf8147369 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index b32a4624174..83b34def3df 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index 03a101706ac..646a274c94a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index 7c2ea4ca8cf..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: 步驟 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -The `condition` string is just a placeholder. Change the `if` statement condition to check if `gold` is greater than or equal to `10`. - -Here is an `if` statement that checks if `num` is greater than or equal to `5`: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -Your `if` statement should check if `gold` is greater than or equal to `10`. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -Your `buyHealth` function should update `health` and `gold` if `gold` is greater than or equal to `10`. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -Your `buyHealth` function should not update `health` and `gold` if `gold` is less than `10`. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index 23684174766..c2df7ba8924 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index a5108647216..e35ee493c6b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index df552626f1b..adad93a5c6b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index 9a18056f74e..470f9065bec 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index 57cf505e52b..bb8a07042e3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index a210376fd75..b3592e5aa14 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index 641048de2e1..0f65c77df04 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -The value of the `currentWeapon` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -In the `buyWeapon` function, use compound assignment to add `1` to `currentWeapon` - the user is buying the next weapon in the `weapons` array. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -You should use compound assignment to add one to `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -Your `buyWeapon` function should increase `currentWeapon` by `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Your code should be in your `if` statement. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index a4c118f6f3d..1bd4b3f4533 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Change your `currentWeapon` assignment to use the increment operator. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -You should use the increment operator to increase `currentWeapon` by `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -You should not use compound assignment to increase `currentWeapon` by `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 0288af76ebf..da2f57a2940 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 0509fd0209f..bd061db00af 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 0ce8646d7ba..d72680595d4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeapon` within the brackets. +Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeaponIndex` within the brackets. When you use a variable in bracket notation, you are accessing the property or index by the *value* of that variable. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index eb78febdb46..6f6157eec95 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` is an object. Use dot notation to get the `name` property of that object. +`weapons[currentWeaponIndex]` is an object. Use dot notation to get the `name` property of that object. # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 065a312d032..b4717bed9e8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 33fcfc81e1d..1d2fa00beec 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ Your `buyWeapon` function should add the value of `newWeapon` to the `inventory` ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index c2c10d03e5b..5443169577e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index 049fa2470e9..baf137a8530 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index 0843051f507..47211f51cf4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index 35bd5b0666b..cd43584c827 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeapon` is less than `3` - the index of the last weapon. +Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -You should have a new `if` statement that checks if `currentWeapon` is less than `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` Your existing `if` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); Your existing `else` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index 71fd3d9c5b4..663cb53c8c4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Arrays have a `length` property that returns the number of items in the array. You may want to add new values to the `weapons` array in the future. -Change your `if` condition to check if `currentWeapon` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ You should use the `length` property on the `weapons` array. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -Your `if` statement should check if `currentWeapon` is less than `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index 00bcc81def5..4632b674d6f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -The `currentWeapon` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. Change the `if` condition to check `weapons.length - 1`, instead of `weapons.length`. @@ -23,10 +23,10 @@ You should update the condition to subtract `1` from `weapons.length`. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -Your condition should check if `currentWeapon` is less than `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 88e988b4342..cc1c4b8273d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 7beafd0a495..041472b56b8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 194d6d2130b..cc73efed14f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index a23450f5ed4..763f646b62b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 0d176b81c7f..975c6446f0f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index 0032e30ee54..93b5c9babb8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Notice that you already have a `currentWeapon` variable elsewhere in your code. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 4e7f9117a26..59e803ef18d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index 0ce7ffb6314..d53accb8e69 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` Your `text.innerText` should update to the proper string. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index 44e4ab1926b..65721659631 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index f5bbad9e0d1..682a5fe76bd 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index b92571d3d30..abd86e35b27 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 7a5458fd606..1c6cd769027 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index a1daed21eef..3b555e0f9f9 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index 331e94c38eb..39a1ab9c522 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 2c8be2f2d00..9d1aebd3d08 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index c26c417f4d0..2312c7efe25 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 507f9e51e21..96029139026 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index eb32394270b..56b799d223d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index f9b1b936de4..1715cd6517f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 437ca16fc9b..2b27d636b1f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index d370d9899e7..c9db1c10266 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index c6f89860b85..bb8a96a906d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeapon].name`. +You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index c66f059b602..040babab4ec 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index d59c6a933e7..6225b405f50 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Using these, you can generate a random number within a range. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ You should use the same `monsterHealth` line you already wrote. assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -You should add to the `weapons[currentWeapon].power` value. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` You should use `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? You should add the result of `Math.floor(Math.random() * xp) + 1` to the result of `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index d68134d2350..274040289a1 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index 6216f4c65fe..d0b9579f564 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index 8535d022b60..562512717f1 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 3be7b4a8355..d7ef1c1dac8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index d5af7299e44..ac255663e19 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index 81d4dd2883d..0aede6aa27a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index 110f82cbd5b..22817a6e62f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 35a05b443aa..be06a139e03 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 024b4959d65..5766abd424a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index 3bca3e5c383..f6b904e02c3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index c1f3457b7c5..405a97fa6e2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 3ad57b17036..5d78cc4d0b5 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 641e365bf76..9286fc33eb0 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 5ff1b213382..22c13f88c2b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeapon` to `0`, and set `inventory` to an array with the string `stick`. +At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Also update the `innerText` properties of `goldText`, `healthText`, and `xpText` to their current values. @@ -39,10 +39,10 @@ Your `restart` function should set `gold` to `50`. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -Your `restart` function should set `currentWeapon` to `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 3f0337d819c..a132b990d3c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index 4e2d63fa3e4..bf52667c43c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index 60476f0b2aa..c0ab5ac0906 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 742247788e6..a08c71c758c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 6474587dc12..29f7abb0770 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index 3d4db3a7460..f3bedbb09e8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index e81d0f555e1..957bb66d7c0 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index 61a5e571b2e..bd1318480e6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index aa35c347a05..bab72910150 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 1b7a89f353f..632abe728dd 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index 4c7363d5341..7da1800af5e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ Move your `monsterHealth` assignment into your `if` block. # --hints-- -You should move your `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` into your `if` block. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index a1775d7543b..e6ce6f4616a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct You should add an `else` block after your `if (isMonsterHit())` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index 061237c00b2..04e1bc8c8a8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 9219b8da936..3b985e1dbd3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 4bca7930754..fcb4a8b153e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 308f53fd795..9e1a123a719 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 0aecde7e233..28d47dffdff 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Decrement the value of `currentWeapon` in your `if` statement, after you update the text. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ You should use the decrement operator. assert.match(attack.toString(), /--/); ``` -You should decrement `currentWeapon` in your `if` statement. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index fb88f652092..aa926a8b8d8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index ed81fa2faed..8187958b6ea 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index f2c2ae3c598..705c25660dd 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index c6c6f37cc03..ebb34fd8bb7 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index 9cf97ef1f86..8e5ad353975 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index 8f4ee7cda5e..03bde3ee4b4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index cbd1b2cbf80..39ca3171634 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index a674632b49b..a8fa573a795 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index 1ef1456647a..af13af000e3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 1eb6aa4c1f1..ee1f17b327b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index 9da6c0e84f1..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -`for` loops are declared with three expressions separated by semicolons. `for (a; b; c)`, where `a` is the initialization expression, `b` is the condition, and `c` is the final expression. - -The initialization expression is executed only once, before the loop starts, and is often used to define and set up the loop variable. Think of it like declaring a counter to use in your loop. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -You should change your initialization in the `for` loop to be `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index 346adeb6fa0..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -The second statement in a `for` loop, the condition statement, is evaluated at the beginning of every loop iteration. The loop will continue as long as the condition evaluates to be true. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -You should update your condition statement to be `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index 1dd28e8ad74..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -The last statement in a `for` loop, the final expression, is executed at the end of each loop iteration. - -Since we changed the initialization statement to use `i` instead of `x`, change `x++` to `i++`. This will increment the initializer `i` by 1 after each loop. - -# --hints-- - -You should change your final expression to `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index 71875c1a0ea..6045c2ab02f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 5d2de454974..5c01ee608a2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index 659e9a1e4b1..51a72303ff2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index b0868a55bf0..3b46e0900dc 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 315f0e29fed..d306e2b1b71 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index 170bc64a1be..eab26d9af14 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index db3e2b0cc04..e584e963759 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index 4210e30d01c..727d1e77172 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index 9e0267fa982..fccddf452a8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index c38becdee8c..52cf362e9fa 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index 27be8c27ee8..3cb2f0de300 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index d7ca4092288..122696eeb7d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index 9a149e43c9c..021beaca935 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index 5bea42e9e29..2ae646111a9 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index e85b1cc53cd..9a344ecf0e6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -You should declare a `cleanInputString` variable. -```js -assert.isDefined(cleanInputString); -``` -Your `cleanInputString` variable should be a function. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index 8caede5414c..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: 步驟 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -You need to split your `str` into individual characters. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -Your `cleanInputString` function should declare a `strArray` variable. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Your `strArray` variable should be assigned the value of `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index cff7f2266d1..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: 步驟 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Declare a `cleanStrArray` variable and assign it an empty array. You will use this to store your valid number characters. - -# --hints-- - -Your `cleanInputString` should declare a variable called `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Your `cleanStrArray` variable should be assigned an empty array. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index acb44781788..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: 步驟21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Use a `for` loop to iterate through each character in your `strArray` array. - -# --hints-- - -Your `cleanInputString` function should have a `for` loop. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Your `for` loop should initialize a variable called `i` to `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Your `for` loop should have a condition that checks if `i` is less than the length of `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Your `for` loop should increment `i` by `1` each time it runs. Use the increment operator for this. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index 84c19ae1523..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: 步驟 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). If it is not, `push` it to the `cleanStrArray`. - -# --hints-- - -Your `for` loop should have an `if` statement. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Your `for` loop should use `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Your `for` loop should `push` `strArray[i]` to `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 4ecae222222..0f955c403d9 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Start by creating a function called `isInvalidInput` – it should take a single # --hints-- -You should declare an `isInvalidInput` variable. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` should be a function. ```js diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index 5fe11ad76a0..9a7c21d3716 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Your next step is to allow users to add entries to the calorie counter. Declare # --hints-- -You should declare an `addEntry` variable. - -```js -assert.isDefined(addEntry); -``` - -Your `addEntry` variable should be a function. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 6a51159bbb2..9db40377581 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; 變量的命名遵循特定的規則:名稱能夠包含字母、數字、美元符號以及下劃線,但是不能包含空格,且一定不能以數字開頭。 -在你的代碼中聲明一個 `character` 變量。 +Use the `let` keyword to declare a variable called `character`. _注意_ :通常我們會以分號來結束JavaScript中的語句, `;` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index b24bf8b5874..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: 步驟 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index 933b749466e..00000000000 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: 步驟15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -To check if the `Object.freeze()` method is working, you can try to assign a new value to one of the existing properties. - -Below the `Object.freeze(myFavoriteFootballTeam)`, assign the `USA` string to `myFavoriteFootballTeam.team`. Below that, add a `console.log` for `myFavoriteFootballTeam.team`. - -When you open up the console, you will see an `Uncaught TypeError` message. This error appears because the `Object.freeze()` method does not allow you to overwrite that value. - -# --hints-- - -You should assign the `USA` string to `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -You should add a `console.log` for `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index 3065921398a..bc807fc5c0d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index 18d8200ff11..e75bb8df857 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 4216c5647df..fe5991bb36f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index b061431ea35..56f8a8c5bdb 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index cc09f914fbc..7372f8ec22c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index c7147fff385..195cdee9df3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index 7f49cce8884..3f6f88262ed 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index 1f0132d00a4..c533a37b155 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index 39457ea2825..da67a56705e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index 0f2313ae024..3736bb11869 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index 8c3c19ab11f..82acaa6b3c3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index e61980a96f1..721bcc96c3a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index cef5c57e79e..3557e400af7 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index 80576deaa9f..bac3f00ea0a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index e113f31b78f..72eafe1bad8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index 43f5fb1bfe7..444b7fdc784 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index 52d9eb2f1b7..c9c58f3116b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index 8868c5a765c..d8d33c388d6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index 85fae5e8755..873984eec34 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index 2549ea07472..0730c23da5f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index b2ffb855264..0a0f7d7988a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index 3721047b281..bca6135aa66 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index 41865149a24..dd653d82676 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index 1f54fee7249..4c0bee4922d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index 0548230ef75..9daf4eae08f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index 752158c5e06..e50496c6802 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index c0cbff90dc2..f1ca711a5de 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 2765e21ad23..05dba4cb05d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index 60bd95da787..9377a08940c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index 1f7499f8a31..ce4f37145bb 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index fd5052039fb..b2a6d170497 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index 9b385dcca38..6f9936b0610 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index a43f5185122..b8ce0222ec1 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index 02223486cfc..4ebab84177c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index b3d4ec193bb..45db9896db8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index 8791ead764e..372dfe9aac0 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index 081d4dc7ceb..c9ebd9ea88e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index c5eb0d4f812..9b2502b6fcc 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index d2e8cda9506..772335aa9cb 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index e881064de25..7b4e0463f11 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index 31a9c97e74e..c5f2cd25630 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index 3a089a326a6..ec5e69947dc 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index 165871e141f..32599d25bc8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index 17c8a721343..2f16b5e2c07 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 694483b338e..f1b315b9a40 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index 2930ec40530..88e4252f484 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index 6e09f3f79fa..b8ed8335dbe 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index b8064cde9cb..61d3b48825f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index 56b1b631ee8..adf05436e58 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index f8c3a690d3e..6207c11a037 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index a717d233133..fac538d124e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index f8d4ad2325d..2ac08ad2f80 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index 1b6d83a3dbf..deeea35d808 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index fb69dd94279..319e43a2f94 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index 0e372251bb0..2df841f22b9 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index 2f5209be7a8..830c343d159 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index c3c12521b6d..d82352d71cf 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index e851ad183bd..7e1d9b879a6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index a11771161a8..79bc3cb9560 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index 631d5d4fc3d..bc7c62897b9 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index 8601e15cc1f..5ce8f334043 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index 7e18dcac0e4..ffe225e7c75 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index a502cc6a9ed..d56a266a6d8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index 1fa28696cc1..372b3371dc6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index f7f9cb1e3a7..16836740c5f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index 1e8ff96ec1b..1db8a74d198 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index 6a22c33a997..4ab3556dbf0 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index 92d144f3be9..f221555ebfc 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index c6954fc2bcf..98540301368 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index 47cd847cf01..64e8d46f274 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index 4ba76211b90..d22121fa789 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index c941d57d03b..22c8b972e6f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 34b9e615e9f..2c7cc6cc816 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index 7fcf1de8765..05a76f3b376 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index b4a94814914..f26558282b8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index a80cd9a7d7f..f518874f325 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index ca516a46a79..78ca9d886b4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index f750ae491dc..5065f72bb56 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index 97b09673207..a216ac20189 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index afa12ec46a4..4b316e79c96 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 7756ba98901..ac469ac9045 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index db34a0dfc44..e14c5b15108 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index bdc8213f67b..632a8b67959 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index 28f5f01ac72..7de07c15763 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index db6f9379fd6..17c997a1905 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index 20d29c065c2..563bb6a96ea 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index 0c0f486d5c3..d0d2f7da36e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index 147c7428622..fbc1ae92f9c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index b72316b2e6a..bcbcfd7c019 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 71cca5c68b6..b5abf1dc618 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index af73c699894..7a8cf3cc8e4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index 0d0f9185c28..44d9f342c13 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index 5e49c77053d..22c8ef414b4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index d5362882cb7..f8d42c51f69 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index 7f5984b00d8..797e1ccbb27 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index aa1639d72e7..40170c15dfc 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index 29f45ae7fc9..845212c974f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index 02ecde2a571..900a1b98046 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index 617fb32b856..12524e0f333 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index edc124acc5a..aba5ed1e0fd 100644 --- a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Working with Text Question H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index 05765087c87..75fc123e8a2 100644 --- a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Working with Text Question I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index e496b6b12a8..35c0cd937ec 100644 --- a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Working with Text Question J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/chinese-traditional/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/chinese-traditional/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 3b819ecf121..af5b9197326 100644 --- a/curriculum/challenges/chinese-traditional/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/chinese-traditional/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 894f2b37841..f35c3c25a94 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialogue 2: Tom Meets the Coworker Next To Him" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index 857d52d4c51..fa5b427fdc5 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Task 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index c01a7500db8..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 1b087682364..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --sentence-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## --blanks-- - -`didn't` - -### --feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index 06deb070922..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index 0a45ca647ba..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 517694b07dd..d7e094cc620 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 09a9db28687..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..7f272358313 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index e680543b127..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 59caf578b20..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index ae8c84c493c..6c9e37180d2 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index f939ccc2b1e..15928b8a57e 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index 228516e8d6a..3f156a958ac 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 0b235960245..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index 0711fa6a63a..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index 661b0f15434..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..c2978af6438 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index cab77b70343..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index c766e14fb5e..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..ff4175f051d --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..e00c53331df --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index 9583f6593a4..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 551eb4d0dc1..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index cd4e344295c..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index ad177dd411e..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index f8fe547299a..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..6947fe048c2 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..e05448d9d48 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Task 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..aaa7a3890de 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Task 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..ea5416f070f 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Task 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..91066451909 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Task 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..109deef84e4 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Task 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..5bd0b159b4a 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Task 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..527d24103b0 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Task 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..b536269cb5a 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Task 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..9ea5dfd2ec2 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Task 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..0031c5026bb 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Task 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..dc9412ebb8f 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Task 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..53772f4f629 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Task 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..564de6f07b1 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Task 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1f031ee3f1e 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Task 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..f2d572900d8 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Task 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..4b818dc4a70 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Task 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..707eb0d122d 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Task 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..e117e9317d8 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Task 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..5b4096f746c 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Task 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..7221646546e 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Task 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..03428f51432 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Task 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..287f03ddd1e 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Task 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..1538fbae725 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Task 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..331abe3703f 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Task 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..93862c576dc 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Task 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..5afcfa7c916 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Task 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..7937868764f 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Task 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..bf7fa023589 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Task 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..304a2c583d8 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Task 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..98e230933ca 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Task 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..054af388b35 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Task 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..3a5f7c3594b 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Task 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ff7dad74588 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..d41cb232f9c 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Task 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..a29433a1b9a 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Task 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..d29b5313cd6 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Task 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..aa9a85fb288 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Task 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..7eed555b4e1 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Task 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..fd66f011103 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Task 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..198f4c0b6e9 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Task 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..db488ae0a03 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Task 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..fcebb2960ea 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Task 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..b3152c55726 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Task 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..921551d84e0 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Task 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..778df3691d7 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Task 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..cf208824a34 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Task 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..7d49d97efb2 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Task 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..924dc459772 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..32c51e43652 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Task 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..bb730a97243 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Task 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..b96607f08e3 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Task 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..1649db7e147 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Task 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..4d1c3371618 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Task 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..7161861383e 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Task 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..000ef53d2ef 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Task 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..f9abd0109a4 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Task 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..b13756997fc 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Task 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..2de180a58c7 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Task 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..0866794a4e5 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Task 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..610f7a26d7a 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Task 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..185183a0410 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Task 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index 29f87c222a7..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index bbf3abee5cb..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index efabac34ff0..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 5f969d2e0ce..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index f7b6ad85228..00000000000 --- a/curriculum/challenges/chinese-traditional/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作業-- - -Watch the video diff --git a/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index 5127542448c..a5955c4bf3e 100644 --- a/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: 使用 s 标签给文本添加删除线 challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/chinese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/chinese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index f00d72996ec..1cd25f28f25 100644 --- a/curriculum/challenges/chinese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/chinese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: 通过浏览器降级提高兼容性 challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index 356b0a9485f..66f9f59ad74 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: 将一个变量的值赋给另一个 challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index 33be3789635..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: 步骤 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index ffb16fb6204..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: 步骤 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index 295f2f92f8a..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: 步骤 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index 181bca01c55..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: 步骤4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index 1ea1661e5c5..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: 步骤 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index 5ae223cb323..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: 步骤6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index df63f9b3f50..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: 步骤 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index 3d9fc5616df..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: 步骤 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index 966c5a07b3d..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: 步骤 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index 8a84dfee282..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: 步骤 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index 7106928c9cd..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: 步骤 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index 4f98b7996b9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: 步骤 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index 8bbdd7dcdfc..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: 步骤 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index 5cb365d892b..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: 第 14 步 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index 690ea5075b2..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: 步骤15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index a9472a1b1d4..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: 步骤 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index 00c8a75d53c..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: Step 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index 922a220c1ad..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: 步骤 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index 207500f153f..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: 步骤 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index 0a8fda26cfd..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: 步骤 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index 729a8534065..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: 步骤21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index f1a52161a8c..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: 步骤 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index 9806d6d0d57..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: 步骤-23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index b1ce4a8862a..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: 步骤 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index 198a70e6aff..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: 步骤 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 4c12b0049a1..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: 步骤 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index 6af6c533388..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: 步骤 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index fe7a67208ba..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: 第 28 步 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index 25c4404dd10..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: 步骤 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index 4c9e4d4d7af..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: 第 30 步 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index 0d8d01a1cf7..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: 步骤 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index 0db69740db3..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: 步骤 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index 271954f8787..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: 步骤 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index 473de9563fb..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: 步骤 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index f2adcf402e5..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: 步骤 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index 69f5c4041e1..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: 步骤 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index fcd2a490442..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: 步骤 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index 2e89511784f..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: 步骤 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 6ae282e4629..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: 步骤 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index 4f40bcfefab..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: 步骤 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index 8eece9f0a0c..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: 步骤 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index 88ab5fcf3d9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: 步骤 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index 594ee2be05c..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: 第 43 步 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index fcb7c410c34..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: 步骤 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index 32d274544fe..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: 步骤 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index 6c4d93c26dd..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: 步骤 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index 508d09795fc..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: 步骤 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index 1f82bc1d744..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: 步骤 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index 7971f37b7a5..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: 步骤 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index bb719ad4ace..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: 步骤 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index 42f6fafc5f9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: 步骤 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 73936deee46..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: 第 52 步 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index a053d9bef8b..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: 步骤 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index 091e1c94ece..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: 第 54 步 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index 2fd70bf1b24..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: 步骤 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index 82751e36e49..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: 步骤 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index 74a44515208..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: 步骤 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index 4202809e038..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: 步骤 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index 3249383418c..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: 步骤 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 0680f4280c9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: 步骤 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index 44da98524c4..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: 步骤 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index 42fcf3405e5..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: 步骤 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index 6fe6c47ff02..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: 步骤 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index 6a605a036ee..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: 步骤 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index 940c83aff0b..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: 步骤 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index 5ca9c4ea063..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: 第 66 步 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index f64f9c8a2c6..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: 步骤 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index 012fceef73b..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: 步骤 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index 4aff52f6eb8..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: 步骤 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index 613bb6b4c29..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: 步骤 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index d601bc10c5c..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: 步骤 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index 1f3edbc8ecf..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: 步骤 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index f9ed98ccf5e..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: 步骤 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index 02c9aa590d9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: 步骤 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index 89ce65eea31..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: 步骤 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index 7baf0919faa..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: 步骤 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index 50ebc951d51..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: 步骤 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index 85d66dcf90e..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: 步骤 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index cdbbe0d6e5b..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: 步骤 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index 6f9b4c4d844..c3536e1c01a 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -13,7 +13,7 @@ Start by defining a function named `add_expense` that takes three parameters: `e # --hints-- -You should declare a function named `add_expense`. +You should use the `def` keyword to declare a function named `add_expense`. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index 64932bd4458..a48d0867c7e 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -7,13 +7,13 @@ dashedName: step-2 # --description-- -A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets `[]`, with each item separated from the following one by a comma. +A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets (`[]`), with each item separated from the following one by a comma. ```py numbers = [1, 2, 3, 4] ``` -Create an empty list named `expenses`. You will use it to store each of your expenses. +Use a pair of square brackets to create an empty list named `expenses`. You will use it to store each of your expenses. # --hints-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index a5adfe71f5e..1ebf8b82ce8 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -7,21 +7,29 @@ dashedName: step-3 # --description-- -The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you can use the `.append()` list method: +The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you'll use the `.append()` list method: ```py my_list = [2, 4, 7] my_list.append(3) ``` -In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. +In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. + +Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. # --hints-- You should have `expenses.append()` in your function. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\)/m) +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append()")`)) }) +``` + +You should not have `pass` in your function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("add_expense").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index 6b2ae165a85..c2d3100081d 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -7,7 +7,7 @@ dashedName: step-4 # --description-- -A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces `{}` and they contain key-value pairs separated by commas. Each key is followed by a colon `:` and the value: +A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces (`{}`) and they contain key-value pairs separated by commas. Each key is followed by a colon (`:`) and the value: ```py {'amount': 50.0, 'category': 'Food'} @@ -19,10 +19,20 @@ Create a dictionary with a key `'amount'` and value of the `amount` parameter an # --hints-- -You should have `expenses.append({'amount': amount})` in your function. +You should pass a dictionary as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) +`)) }) +``` + +You should pass `{'amount': amount}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index 42b753417c8..f163b00c9f8 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -11,10 +11,20 @@ Add another key-value pair to the dictionary you are appending to the `expense` # --hints-- -You should have `expenses.append({'amount': amount, 'category': category})` in your code. +You should add a second key-value pair to the dictionary you are passing as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*,\s*("|')category\2\s*:\s*category\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) and len(node[0].tree.keys) == 2 +`)) }) +``` + +You should pass `{'amount': amount, 'category': category}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount, 'category': category})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index 87598fba96d..7178331b470 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -Start by defining a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. +Next, define a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. Fill the body of your new function with a `pass` statement. diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index be609b627ec..b8626918839 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -11,10 +11,22 @@ Inside the `print_expenses` function, create a `for` loop that iterates over eac # --hints-- -You should have `for expense in expenses:` in your `print_expenses` function. Remember to use `pass` within the loop body. +You should create a `for` loop that iterates over `expenses` in your `print_expenses` function. Remember to use `pass` within the loop body. ```js -({ test: () => assert.match(code, /for\s+expense\s+in\s+expenses\s*:/ ) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_iter().is_equivalent("expenses")`)) }) +``` + +You should use `expense` as the loop variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_vars().is_equivalent("expense")`)) }) +``` + +You should have `pass` only inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index 60adf47415e..bd6201b09c3 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -9,14 +9,20 @@ dashedName: step-8 Next, you are going to display the details for each expense. -Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. Leave the placeholders empty for now. +Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. # --hints-- -You should have `print(f'Amount: {expense}, Category: {expense}')` in your `for` loop. +You should print `f'Amount: {expense}, Category: {expense}'` in your `for` loop. ```js -({ test: () => assert.match(code, /^\s+print\s*\(\s*f("|')Amount: \{\s*expense\s*\}, Category: \{\s*expense\s*\}\1\s*\)/m) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].has_call("print(f'Amount: {expense}, Category: {expense}')")`)) }) +``` + +You should not have `pass` inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_bodies()[0].has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index 30932dc5d6c..9835e89fad3 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -7,7 +7,12 @@ dashedName: step-9 # --description-- -You can access values in a dictionary through its keys. You need to use the bracket notation and include the key between the square brackets: +In Python, an important thing to know is that the same type of quote used to define a string cannot be used inside it. For example, the string `'I'm a string!'` is not valid. To use the single quote inside that string you should either: + +- Escape the quote by prepending a backlash to it: `'I\'m a string!'` +- Or use double quotes to define the string: `"I'm a string!"` (preferred). + +You can access values in a dictionary through its keys. You need to use bracket notation and include the key between the square brackets: ```py my_dict = {'amount': 50.0, 'category': 'Food'} diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index 2ce2b1dcd54..9d79097c8c0 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -7,7 +7,9 @@ dashedName: step-10 # --description-- -You will need a function to calculate the total amount of expenses. Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. +You will need a function to calculate the total amount of expenses. + +Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. # --hints-- @@ -21,7 +23,7 @@ You should define a function named `total_expenses`. }) ``` -Your`total_expenses` function should take a single `expenses` parameter. +Your `total_expenses` function should take a single `expenses` parameter. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index 3cedee2e187..c36bbb455b2 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -13,14 +13,22 @@ Lambda functions are brief, anonymous functions in Python, ideal for simple, one lambda x: expr ``` -In the example above, `x` is a parameter to be used in the expression `expr`. Create a `test` variable and assign it a lambda function that takes an `x` parameter and returns `x * 2`. +In the example above, `x` represents a parameter to be used in the expression `expr`, and it acts just like any parameter in a traditional function. `expr` is the expression that gets evaluated and returned when the lambda function is called. + +Create a variable named `test` and assign it a lambda function that takes an `x` parameter and returns `x * 2`. # --hints-- -You should have `test = lambda x: x * 2` in your code. +You should declare a variable named `test`. ```js -({ test: () => assert.match(code,/^test\s*=\s*lambda\s+x\s*:\s*x\s*\*\s*2/m)}) +({ test: () => assert(runPython(`_Node(_code).has_variable("test")`))}) +``` + +You should assign `lambda x: x * 2` to your `test` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_variable("test").is_equivalent("test = lambda x: x * 2")`))}) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index dd940eade74..49315159fda 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -13,9 +13,11 @@ Lambda functions can be valuably combined with the `map()` function, which execu map(lambda x: x * 2, [1, 2, 3]) ``` +The function to execute is passed as the first argument, and the iterable is passed as the second argument. + The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index 886988d9c70..0d904e4d542 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -1,6 +1,6 @@ --- id: 658238f7604f154ea9a23e1e -title: 第 14 步 +title: Step 15 challengeType: 20 dashedName: step-15 --- @@ -9,7 +9,7 @@ dashedName: step-15 The `sum()` function returns the sum of the items in the iterable which is passed as its argument. You are going to use `sum()` together with `map()` and `lambda` functions to get the total amount of expenses. -For now, make a little test and modify your current `print()` call by passing `sum(map(test, [2, 3, 5, 8]))` as the argument. +For now, make a little test and modify your current `print()` call replacing the `list()` call with a call to the `sum()` function passing it the current `map()` call as the argument. # --hints-- @@ -36,7 +36,7 @@ def total_expenses(expenses): --fcc-editable-region-- test = lambda x: x * 2 -print(map(test, [2, 3, 5, 8])) +print(list(map(test, [2,3,5,8]))) --fcc-editable-region-- expenses = [] diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index c4b3c2b737a..0c4b5191a9a 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -1,28 +1,22 @@ --- id: 65823b0167fd894f4a7ea60a -title: 步骤15 +title: Step 16 challengeType: 20 dashedName: step-16 --- # --description-- -Next, you are going to implement the same logic to the `total_expenses` function. +Next, you are going to implement the same logic within the `total_expenses` function. For now, delete both the `test` function and the `print()` call. # --hints-- -You should delete your `test` variable. +You should delete your `test` variable and the related `print()` call. ```js -({ test: () => assert.notMatch(code, /test\s*=/) }) -``` - -You should delete your `print(sum(map(test, [2, 3, 5, 8])))` call. - -```js -({ test: () => assert.notMatch(code, /print\s*\(\s*sum/) }) +({ test: () => assert.isFalse(runPython(`_Node(_code).has_variable("test")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index e5a24107a7b..af93b0e12fc 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -1,27 +1,28 @@ --- id: 65823bbbdb4eaa4f9d20a0fb -title: 步骤 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- # --description-- -Within your `total_expenses` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the value of the `'amount'` key in the `expense` dictionary. +In the `total_expenses` function, you'll now integrate a lambda function. Replace `pass` with a lambda function that has `expense` as its parameter. + +`expense` is expected to be a dictionary, and your lambda function should return the value of the `'amount'` key in the `expense` dictionary. # --hints-- -You should have `lambda expense: expense['amount']` in your `total_expenses` function. +You should create a `lambda` function that uses the parameter `expense` and returns `expense['amount']` in your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_stmt("lambda expense: expense['amount']")`)) }) +``` + +You should not have `pass` in your `total_expenses` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("total_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index d17f8f6571d..c06ab93c264 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -1,6 +1,6 @@ --- id: 65823cfc74aa564ffc460489 -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- @@ -11,17 +11,22 @@ Now, call `map()` passing your `lambda` function as the first argument and the ` # --hints-- -You should have `map(lambda expense: expense['amount'], expenses)` in your code. +You should call the `map()` function inside the `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("total_expenses").find_calls("map")) == 1`)) }) +``` + +You should pass your `lambda` function as the first argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[0].is_equivalent("lambda expense: expense['amount']")`)) }) +``` + +You should pass the `expenses` list as the second argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index 04756066800..29c09ae0262 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -1,6 +1,6 @@ --- id: 65823dde36392f505a39f7c7 -title: 步骤 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- @@ -11,17 +11,10 @@ Finally, pass your `map()` call to the `sum()` function to obtain the total expe # --hints-- -You should return `sum(map(lambda expense: expense['amount'], expenses))` from your `total_expenses` function. +You should call the `sum()` function passing it your current `map()` call as the argument and return the result from your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+sum\s*\(\s*map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_return("sum(map(lambda expense: expense['amount'], expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index 40dbcb91e73..63af9be4151 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -1,6 +1,6 @@ --- id: 65823e87c9741750a22085a7 -title: 步骤 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index ecb22b82fb1..289c306da64 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -1,27 +1,26 @@ --- id: 65823ff0d4b991510fade1a8 -title: 步骤 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- # --description-- -Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category`. +Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -You should have `lambda expense: expense['category'] == category` inside the `filter_expenses_by_category` function. +You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) +``` + +You should not have `pass` inside the `filter_expenses_by_category` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index 27fd7fbaa55..fc8cab1fff0 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -1,6 +1,6 @@ --- id: 65824111a09164518320088d -title: 步骤21 +title: Step 22 challengeType: 20 dashedName: step-22 --- @@ -13,23 +13,30 @@ The `filter()` function allows you to select items from an iterable, such as a l filter(my_function, my_list) ``` -`filter()` returns an iterator in which the elements of `my_list` are included, for which `my_function` returns `True`. An iterator is a special object that enables you to iterate over the elements of a collection, like a list. +`filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. + +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. # --hints-- -You should have `filter(lambda expense: expense['category'] == category, expenses)` in your `filter_expenses_by_category` function. +You should call `filter()` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")) == 1`)) }) +``` + +You should pass `lambda expense: expense['category'] == category` as the first argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[0].is_equivalent("lambda expense: expense['category'] == category")`)) }) +``` + +You should pass `expenses` as the second argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index 584423b8316..f0f6c12e365 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -1,6 +1,6 @@ --- id: 658244fdf4b0265334711664 -title: 步骤 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- @@ -14,14 +14,7 @@ Finally, return the result of the `filter()` call. You should return the result of the `filter()` call from your `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_return("filter(lambda expense: expense['category'] == category, expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index 9f4165077db..cae351eee31 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -1,6 +1,6 @@ --- id: 65824561f3478e5371a33ae5 -title: 步骤-23 +title: Step 24 challengeType: 20 dashedName: step-24 --- @@ -19,6 +19,8 @@ You should define a function named `main()` without parameters. ({ test: () => assert(runPython(` import inspect inspect.isfunction(main) + sig = str(inspect.signature(main)) + sig == '()' `)) }) ``` @@ -26,12 +28,7 @@ You should define a function named `main()` without parameters. You should move the `expenses` list inside the `main()` function body. ```js -({ test: () => assert(runPython(` - import inspect - sig = str(inspect.signature(main)) - sig == '()' - `)) -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_body().is_equivalent("expenses = []")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index ab0d5a447f5..23b116aea50 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -1,6 +1,6 @@ --- id: 658246c28575d653d1f89b59 -title: 步骤 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- @@ -18,30 +18,16 @@ Below the `expenses` list, create a `while` loop. Use `True` for the condition, # --hints-- -You should have `while True:` in your `main()` function. +You should create a `while` loop using `True` as the condition within your `main()` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+while\s+True\s*:/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_conditions()[0].is_equivalent("True")`)) }) ``` -You should have `print('\nExpense Tracker')` in your `while` loop. +You should print `'\nExpense Tracker'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')\\nExpense\s*Tracker\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print")[0].is_equivalent("print('\\\\nExpense Tracker')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index c454e5facd1..150c7896f1d 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -1,6 +1,6 @@ --- id: 65824872894f59546e3084e2 -title: 步骤 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- @@ -9,21 +9,18 @@ dashedName: step-26 The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. -After the `print()` call, add another one to print the string `'1. Add an expense'`. +After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. # --hints-- -You should have `print('1. Add an expense')` in your `while` loop. +You should print `'1. Add an expense'` within your `while` loop after the existing `print()` call. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')1\.\sAdd\san\sexpense\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index 05668d8a194..a557268c2db 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -1,6 +1,6 @@ --- id: 65824a1b16631c54fa524154 -title: 步骤 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- @@ -11,17 +11,14 @@ Next, add another `print()` call and pass the string `'2. List all expenses'`. # --hints-- -You should have `print('2. List all expenses')` in your `while` loop. +You should print `'2. List all expenses'` in your `while` loop after the existing `print()` calls. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')2\.\sList\sall\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index d69c03009ef..662e4d59211 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -1,53 +1,44 @@ --- id: 65824c7b4e2da85597693dcf -title: 步骤 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- # --description-- -Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. +Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. Keep adding the `print()` calls in order. # --hints-- You should have `print('3. Show total expenses')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')3\.\sShow\stotal\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('4. Filter expenses by category')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')4\.\sFilter\sexpenses\sby\scategory\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('5. Exit')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')5\.\sExit\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')", "print('5. Exit')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index 39073ba36e8..6c5f7e20351 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -1,6 +1,6 @@ --- id: 65824dfdb6815d563b2d3256 -title: 第 28 步 +title: Step 29 challengeType: 20 dashedName: step-29 --- @@ -13,17 +13,18 @@ Inside your `while` loop, call the `input()` function passing the string `'Enter # --hints-- -You should have `choice = input('Enter your choice: ')` in your `while` loop. +You should declare a variable named `choice` within your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+choice\s*=\s*input\s*\(\s*("|')Enter\syour\schoice:\s\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].has_variable("choice") +`)) }) +``` + +You should assign the result of the `input()` function, with the string `'Enter your choice: '` as its argument, to your `choice` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_variable("choice").is_equivalent("choice = input('Enter your choice: ')") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 103a6809e9f..8f20aa4cf58 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -1,6 +1,6 @@ --- id: 6582507654b3ed5712341382 -title: 步骤 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- @@ -15,30 +15,27 @@ Inside the `if` statement body, declare a variable `amount` and assign it an emp # --hints-- -You should have `if choice == '1':` in your `while` loop: +You should create an `if` statement that checks if `choice` is equal to `'1'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[0] +cond.is_equivalent("choice == '1'") or cond.is_equivalent("'1' == choice") +`)) }) ``` -You should have `amount = input()` in your `if` statement body: +You should declare a variable named `amount` in your `if` statement body. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("amount") +`)) }) +``` + +You should assign an empty `input()` call to your `amount` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input()") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index 150c207bf94..15f326cb257 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -1,6 +1,6 @@ --- id: 658252f6b1526d57b103d48a -title: 第 30 步 +title: Step 31 challengeType: 20 dashedName: step-31 --- @@ -13,17 +13,11 @@ Pass the string `'Enter amount: '` to your empty `input()` call, so you can stor # --hints-- -You should have `amount = input('Enter amount: ')` in your `if` statement. +You should pass `'Enter amount: '` to the `input()` call assigned to the `amount` variable. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*("|')Enter amount:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input('Enter amount: ')") +`)) }) ``` # --seed-- @@ -44,7 +38,6 @@ def total_expenses(expenses): def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) ---fcc-editable-region-- def main(): expenses = [] while True: @@ -56,7 +49,7 @@ def main(): print('5. Exit') choice = input('Enter your choice: ') - +--fcc-editable-region-- if choice == '1': amount = input() --fcc-editable-region-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index 0ef76458cdc..275d3f75aac 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -1,6 +1,6 @@ --- id: 658254db6e12485a48130f57 -title: 步骤 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- @@ -13,17 +13,11 @@ Pass `input('Enter amount: ')` to the `float()` function. # --hints-- -You should have `amount = float(input('Enter amount: '))` in your `if` statement. +You should pass `input('Enter amount: ')` to the `float()` function in the assignment of `amount`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = float(input('Enter amount: '))") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index ef5c516100e..0249ed79c87 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -1,27 +1,26 @@ --- id: 658255d5f955175b270f251d -title: 步骤 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- # --description-- -Inside your `if` statement, create a variable `category` to store the expense category. Assign it `input('Enter category: ')`. +Inside your `if` statement, create a variable named `category` to store the expense category. Assign it a call to `input()` and use the `'Enter category: '` as the argument. # --hints-- -You should have `category = input('Enter category: ')` in your `if` statement. +You should declare a variable named `category` in your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("category")`)) }) +``` + +You should assign `input('Enter category: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("category").is_equivalent("category = input('Enter category: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index 018a38b9c81..fd25bf41ee6 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -1,13 +1,13 @@ --- id: 6582575b8089f85b8b92d7c8 -title: 步骤 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- # --description-- -After getting the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. +Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. @@ -17,17 +17,22 @@ After getting the `amount` and `category` using `input()`, call the `add_expense # --hints-- -You should have `add_expense(expenses, amount, category)` in your `if` statement. +You should call the `add_expense()` function within your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)\s*add_expense\s*\(\s*expenses\s*,\s*amount\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_calls("add_expense")) == 1`)) }) +``` + +You should pass three arguments to your `add_expense()` call: `expenses`, `amount`, and `category`. The order matters. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_call("add_expense(expenses, amount, category)")`)) }) +``` + +Your `add_expense()` call should come after the assignment of `amount` and `category`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].is_equivalent("amount = float(input('Enter amount: '))\\ncategory = input('Enter category: ')\\nadd_expense(expenses, amount, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index 8e9d1d5134f..7ca152b9bde 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -1,42 +1,31 @@ --- id: 658258c0e5fbe85c14c060cf -title: 步骤 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- # --description-- -To list all expenses, you can use an `elif` statement after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. +To list all expenses, you can use an `elif` clause after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. -Create an `elif` statement to check if the user's choice equals the string `2`. Inside the `elif` statement, print the string `'\nAll Expenses:'`. +Create an `elif` clause to check if the user's choice equals the string `'2'`. Inside the `elif` clause, print the string `'\nAll Expenses:'`. # --hints-- -You should have `elif choice == '2':` after your `if` statement. +You should create an `elif` clause that checks that `choice` is equal to `'2'` after your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[1] +cond.is_equivalent("choice == '2'") or cond.is_equivalent("'2' == choice") +`)) }) ``` -You should have `print('\nAll Expenses:')` inside your `elif` statement. +You should print `'\nAll Expenses:'` inside your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index fb0708b70e7..0bc3402cf58 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -1,6 +1,6 @@ --- id: 65825a9520a0795c8afbef50 -title: 步骤 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- @@ -11,17 +11,16 @@ After the `print()` call, call the `print_expenses` function to display all the # --hints-- -You should have `print_expenses(expenses)` in your `elif` statement. +You should call the `print_expenses()` function within your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)\s*print\s*_expenses\s*\(\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].find_calls("print_expenses")) == 1`)) }) +``` + +You should pass the `expenses` list as the argument to your `print_expenses()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print_expenses(expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index ecac230ed7e..6c1297bc068 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -1,6 +1,6 @@ --- id: 65825b758fe85a5cebabc8c5 -title: 步骤 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- @@ -13,30 +13,19 @@ If it's true, it means the user wants to see the total expenses. So call `print( # --hints-- -You should have `elif choice == '3':` in your code. +You should create an `elif` clause that checks if `choice == '3'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert.match(function_body, /\s+elif\s+choice\s*==\s*("|')3\1\s*:/); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[2] +cond.is_equivalent("choice == '3'") or cond.is_equivalent("'3' == choice") +`)) }) ``` -You should have `print('\nTotal Expenses: ', total_expenses(expenses))` in your `elif` statement. +You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')3\1\s*:\s*print\s*\(\s*("|')\\nTotal\sExpenses:\s\2\s*,\s*total_expenses\s*\(\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[2].has_call("print('\\\\nTotal Expenses: ', total_expenses(expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index 846307cbc99..676b0ec42f7 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -1,40 +1,35 @@ --- id: 65825cda2668995d5168e37c -title: 步骤 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- # --description-- -Create another `elif` statement that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. +Create another `elif` clause that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. # --hints-- -You should have `elif choice == '4':` in your code. +You should create an `elif` clause that checks if `choice == '4'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[3] +cond.is_equivalent("choice == '4'") or cond.is_equivalent("'4' == choice") +`)) }) ``` -You should have `category = input('Enter category to filter: ')` in your new `elif` statement. +You should declared a variable named `category` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("category")`)) }) +``` + +You should assign `input('Enter category to filter: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("category").is_equivalent("category = input('Enter category to filter: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index e85ae393b60..d354cb667cb 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -1,6 +1,6 @@ --- id: 65825e96b5db5f5dee6bf57c -title: 步骤 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- @@ -11,17 +11,10 @@ After getting the category, print the following f-string `f'\nExpenses for {cate # --hints-- -You should print `f'\nExpenses for {category}:'` inside the `elif` statement. +You should print `f'\nExpenses for {category}:'` after the assignment of `category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index dd0543ac9e7..669de4ae215 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -1,6 +1,6 @@ --- id: 6582601b2987045e8e7da994 -title: 步骤 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- @@ -11,17 +11,22 @@ After your `print()` call, you need to filter the expenses and print the filtere # --hints-- -You should have `expenses_from_category = filter_expenses_by_category(expenses, category)` in your `elif` statement. +You should declare a variable named `expenses_from_category` in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("expenses_from_category")`)) }) +``` + +You should call `filter_expenses_by_category()` passing `expenses` and `category` as the arguments and assign it to your `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("expenses_from_category").is_equivalent("expenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) +``` + +Your `expenses_from_category` variable should come after the `print()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index 935e5fd579f..4801aa6d338 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -1,27 +1,26 @@ --- id: 6582622cb6c11a5f4c5d79b4 -title: 步骤 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- # --description-- -Still within the `elif` statement, pass `expenses_from_category` iterator to a `print_expenses` call. +Still within the `elif` clause, pass the `expenses_from_category` iterator to a `print_expenses` call. # --hints-- -You should have `print_expenses(expenses_from_category)` in your code. +You should call `print_expenses()` passing `expenses_from_category` as the argument in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)\s*print_expenses\s*\(\s*expenses_from_category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_call("print_expenses(expenses_from_category)")`)) }) +``` + +Your `print_expenses()` call should come after the `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)\\nprint_expenses(expenses_from_category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index b169b076af7..911a95cf962 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -1,42 +1,31 @@ --- id: 6582687859366a618424d84b -title: 步骤 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- # --description-- -To provide a way to exit the program, use another `elif` statement to check if `choice` equals the string `'5'`. +To provide a way to exit the program, use another `elif` clause to check if `choice` equals the string `'5'`. -Inside the new `elif` statement, print the string `'Exiting the program.'` to show that the program is terminating its execution. +Inside the new `elif` clause, print the string `'Exiting the program.'` to show that the program is terminating its execution. # --hints-- -You should have `elif choice == '5':` in your code. +You should create an `elif` clause that checks if `choice == '5'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4] +cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice") +`)) }) ``` -You should print `'Exiting the program.'` in your new `elif` statement. +You should print `'Exiting the program.'` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:\s*print\s*\(\s*("|')Exiting\sthe\sprogram.\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 927fb97835a..712c3072018 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -1,27 +1,20 @@ --- id: 65826a6e9d189a623141c726 -title: 步骤 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- # --description-- -Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` statement. +Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` clause. # --hints-- -You should have a `break` statement inside your last `elif`. +You should have a `break` statement after the `print()` call inside your last `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+break/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].is_equivalent("print('Exiting the program.')\\nbreak")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index d251584867d..f2fec123e71 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -1,13 +1,15 @@ --- id: 65826af5b226a5628aa154b1 -title: 第 43 步 +title: Step 44 challengeType: 20 dashedName: step-44 --- # --description-- -Finally, call your `main()` function, and try the expense tracker program. +Finally, call your `main()` function, and try the expense tracker program in the console. + +With that, the expense tracker project is complete! # --hints-- @@ -74,3 +76,58 @@ def main(): --fcc-editable-region-- ``` + +# --solutions-- + +```py +def add_expense(expenses, amount, category): + expenses.append({'amount': amount, 'category': category}) + +def print_expenses(expenses): + for expense in expenses: + print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') + +def total_expenses(expenses): + return sum(map(lambda expense: expense['amount'], expenses)) + +def filter_expenses_by_category(expenses, category): + return filter(lambda expense: expense['category'] == category, expenses) + + +def main(): + expenses = [] + while True: + print('\nExpense Tracker') + print('1. Add an expense') + print('2. List all expenses') + print('3. Show total expenses') + print('4. Filter expenses by category') + print('5. Exit') + + choice = input('Enter your choice: ') + + if choice == '1': + amount = float(input('Enter amount: ')) + category = input('Enter category: ') + add_expense(expenses, amount, category) + + elif choice == '2': + print('\nAll Expenses:') + print_expenses(expenses) + + elif choice == '3': + print('\nTotal Expenses: ', total_expenses(expenses)) + + elif choice == '4': + category = input('Enter category to filter: ') + print(f'\nExpenses for {category}:') + expenses_from_category = filter_expenses_by_category(expenses, category) + print_expenses(expenses_from_category) + + elif choice == '5': + print('Exiting the program.') + break + +main() + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index 852f9137b56..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: 步骤 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index ec3315ddb15..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: 步骤 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index 8c9ed4f0e5b..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: 步骤 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index f9d7ebccb20..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: 步骤4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index 48269cec6e0..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: 步骤 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index 6fbabd110a7..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: 步骤6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index 2c74c9dbc7b..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: 步骤 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index 07e4cbc5381..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: 步骤 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index 93bf2cd9c57..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: 步骤 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index 756610449e9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: 步骤 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index e4186506835..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: 步骤 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index dbf531cf078..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: 步骤 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 60a8e3a1b44..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: 步骤 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 0d4b40675b9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: 第 14 步 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index f4ef2f0cda7..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: 步骤15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index 0d2f5d3abf3..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: 步骤 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index 5374e9ac347..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: Step 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index 42311d02c53..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: 步骤 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index 2a58d8115cc..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: 步骤 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index a1edd6526d9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: 步骤21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index 637bba89b1b..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: 步骤 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index 0c028650ed9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: 步骤-23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index ad433c43d14..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: 步骤 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Write another `if` statement that checks if the target key is less than the key of the current node. - -Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. - -# --hints-- - -You should write another `if` statement to check if `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -You should return `self._search(node.left, key)` from your new `if` block. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index f09d4a0fa16..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: 步骤 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index 52486ff4b58..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: 步骤 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index 4a82059c8fe..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: 步骤 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 1e94e6f49ca..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: 步骤 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index 75422dea2a0..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: 第 28 步 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index f3ba1ece4b4..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: 步骤 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index 1617cf6d8da..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: 第 30 步 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index b389ef5ff4d..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: 步骤 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index 432ded4dbf3..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: 步骤 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index e87e9fa12f0..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: 步骤 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index 7f94a837349..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: 步骤 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Remember to use the `pass` keyword. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index f57a3d44bd3..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: 步骤 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index 335a2874d7e..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: 步骤 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index 57b5fd49319..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: 步骤 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index 1bd3a53880d..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: 步骤 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index 6e4b912e076..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: 步骤 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index d9eed133fe1..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: 步骤 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index b13ec0f65c8..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: 步骤 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index 064793041e5..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: 步骤 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index 75e13ea544a..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: 第 43 步 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index 4b3dce073e0..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: 步骤 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index 57bf49ed1ae..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: 步骤 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index a422ae40256..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: 步骤 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index 27a12cd6bbe..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: 步骤 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index 083596130b7..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: 步骤 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index f2de43404e8..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: 步骤 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index 08275f94888..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: 步骤 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index db3887a0265..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: 第 52 步 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index 99c55769abe..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: 步骤 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index 67842a8c2db..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: 第 54 步 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index 42cf6394ea7..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: 步骤 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index cf678422a31..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: 步骤 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index fdb4878f4fd..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: 步骤 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index e9d06bbde4b..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: 步骤 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index 9faa1cf9286..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: 步骤 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index 3958b7c459f..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: 步骤 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index 9847c545944..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: 步骤 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index 776521cd099..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: 步骤 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index 528cfa936c9..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: 算术格式化 -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -小学生经常把算术题垂直排列,这样更容易解决。 例如,“235 + 52” 变成: - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. 该函数应该接受可选的第二个参数。 当第二个参数设置为 `True` 时,应显示答案。 - -## 示例 - -函数调用: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -输出: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -函数调用: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -输出: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## 规则 - -如果提供的问题格式正确,该函数将返回正确的转换,否则,它将 **返回** 一个 **字符串** 来描述对用户有意义的错误。 - -- 会返回错误的情况: - - 如果提供给函数的**问题过多**。 The limit is **five**, anything more will return: `'Error: Too many problems.'` - - 函数可以接受的运算符是**加法**和**减法**。 乘法和除法将返回错误。 本要点中未提及的其他运算符将不需要进行测试。 The error returned will be: `"Error: Operator must be '+' or '-'."` - - 每个数字(操作数)应该只包含数字。 Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - 每个操作数(即运算符每一侧的数字)的宽度最多为四位数字。 Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- 如果用户提供了正确格式的问题,返回的转换将遵循以下规则: - - 操作符和两个操作数中最长的一个之间应该有一个空格,操作符将与第二个操作数在同一行,两个操作数的顺序与提供的相同(第一个是上面的,第二个是下面的)。 - - 数字应该右对齐。 - - 每个问题之间应该有四个空格。 - - 每个问题的底部都应该有破折号。 破折号应该单独沿着每个问题的整个长度延伸。 (上面的例子展示了这应该是什么样子。) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index 3b3a5cca3fc..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: 预算应用 -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. 它应该能够根据不同的预算类别实例化对象,例如 *食物* 、 *服装* 和 *娱乐* 。 创建对象时,它们以类别的名称传递。 该类应该有一个名为 `ledger` 的实例变量,它是一个列表。 该类还应包含以下方法: - -- 接受金额和描述的 `deposit` 方法。 如果没有给出描述,它应该默认为一个空字符串。 该方法应以 `{"amount": amount, "description": description}` 的形式将对象附加到账本列表。 -- `withdraw` 方法类似于 `deposit` 方法,但传入的金额应作为负数存储在账本中。 如果没有足够的资金,则不应向账本添加任何内容。 如果取款发生,此方法应返回 `True`,否则返回 `False`。 -- `get_balance` 方法,根据发生的存款和取款返回预算类别的当前余额。 -- `transfer` 方法,它接受一个金额和另一个预算类别作为参数。 该方法应添加带有金额和描述 “Transfer to [目的地预算类别]”的提款。 然后,该方法应将存款添加到其他预算类别,其金额和描述为 “Transfer from [来源预算类别]”。 如果没有足够的资金,则不应向任一账本添加任何内容。 如果转账发生,此方法应返回 `True`,否则返回 `False`。 -- 接受金额作为参数的 `check_funds` 方法。 如果金额大于预算类别的余额,则返回 `False`,否则返回 `True`。 `withdraw` 方法和 `transfer` 方法都应该使用此方法。 - -打印预算对象时,它应显示: - -- 30 个字符的标题行,类别名称居中在一行 `*` 字符中。 -- 账本中的项目列表。 每行应显示描述和金额。 应显示描述的前 23 个字符,然后是金额。 金额应右对齐,包含两位小数,最多显示 7 个字符。 -- 一行显示类别总数。 - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -除了 `Category` 类之外,创建一个名为 `create_spend_chart` 的函数(在类之外),它将类别列表作为参数。 它应该返回一个作为条形图的字符串。 - -该图表应显示在传递给函数的每个类别中花费的百分比。 花费的百分比应该只计算取款而不是存款。 图表左侧应该是标签 0 - 100。 条形图中的“条”应由“o”字符组成。 每个条形的高度应四舍五入到最接近的 10。 条形图下面的水平线应该超过最后一个条形图再多两个空格。 每个类别名称应垂直写在栏下方。 顶部应该有一个标题,上面写着“Percentage spent by category”。 - -此功能将使用最多四个类别进行测试。 - -仔细查看下面的示例输出,并确保输出的间距与示例完全匹配。 - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 5299ffe6378..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: 多边形面积计算器 -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Rectangle 类 - -创建 Rectangle 对象时,应使用 `width` 和 `height` 属性对其进行初始化。 该类还应包含以下方法: - -- `set_width` -- `set_height` -- `get_area`:返回面积(`width * height`) -- `get_perimeter`:返回周长(`2 * width + 2 * height`) -- `get_diagonal`:返回对角线(`(width ** 2 + height ** 2) ** .5`) -- `get_picture`:返回一个字符串,该字符串使用包含 “\*” 的行来表示形状。 行数应等于高度,每行中 “\*” 的数量应等于宽度。 每行末尾应该有一个新行(`\n`)。 如果宽度或高度大于 50,则应返回字符串:“Too big for picture.”。 -- `get_amount_inside`:以另一个形状(正方形或矩形)作为参数。 返回传入的形状可以装进该形状的次数(没有旋转)。 例如,一个宽为 4、高为 8 的矩形可以放入两个边长为 4 的正方形。 - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Square 类 - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## 使用示例 - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -该代码应该返回: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index b830b6371f6..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: 概率计算器 -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -假设有一顶帽子,里面有 5 个蓝球、4 个红球和 2 个绿球。 随机抽取的 4 个球中至少包含 1 个红球和 2 个绿球的概率是多少? 虽然可以使用高等数学来计算概率,但更简单的方法是编写一个程序来执行大量实验来估计近似概率。 - -对于这个项目,你将编写一个程序来确定从帽子中随机抽取某些球的大致概率。 - -First, create a `Hat` class in `main.py`. 该类应该采用可变数量的参数来指定帽子中每种颜色的球数。 例如,可以通过以下任何一种方式创建类对象: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -一顶帽子总是至少有一个球。 创建时传递给 hat 对象的参数应转换为 `contents` 实例变量。 `contents` 应该是一个字符串列表,其中包含帽子中每个球的一个项目。 列表中的每一项都应该是一个颜色名称,代表该颜色的单个球。 例如,如果你的帽子是 `{"red": 2, "blue": 1}`,`contents` 应该是 `["red", "red", "blue"]`。 - -`Hat` 类应该有一个 `draw` 方法,该方法接受一个参数,该参数指示要从帽子中抽取的球数。 此方法应该从 `contents` 中随机删除球,并将这些球作为字符串列表返回。 在抽取过程中球不应回到帽子中,类似于没有放回的黑盒实验。 如果要抽的球数量超过可用数量,则返回所有球。 - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). 此函数应接受以下参数: - -- `hat`:一个包含球的帽子对象,应该在函数内复制。 -- `expected_balls`:一个对象,指示尝试从帽子中抽取的确切球组以进行实验。 例如,要确定从帽子中抽取 2 个蓝球和 1 个红球的概率,将 `expected_balls` 设置为 `{"blue":2, "red":1}`。 -- `num_balls_drawn`:每次实验中从帽子中抽出的球数。 -- `num_experiments`:要执行的实验数量。 (进行的实验越多,近似概率就越准确。) - -`experiment` 函数应该返回一个概率。 - -例如,如果你想确定当你从一个包含 6 个黑球、4 个红球和 3 个绿球的帽子中抽出 5 个球时,至少得到 2 个红球和 1 个绿球的概率, 你将进行 `N` 次实验,记录其中你至少得到 2 个红球和 1 个绿球的次数 `M`,并估计概率为 `M/N`。 每个实验都包括从一个装有指定球的帽子开始,抽出几个球,并检查你是否抽到了你试图抽出的球。 - -以下是基于上面的示例调用 `experiment` 函数的方法,其中包含 2000 个实验: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -由于这是基于随机抽取的,因此每次运行代码时概率会略有不同。 - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index e8e3c6a07b2..00000000000 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: 时间计算器 -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -编写一个名为 `add_time` 的函数,它接受两个必需参数和一个可选参数: - -- 12 小时制的开始时间(以 AM 或 PM 结束) -- 指示小时数和分钟数的持续时间 -- (可选)一周的开始日期,不区分大小写 - -该函数应将持续时间添加到开始时间并返回结果。 - -如果结果是第二天,它应该在时间之后显示 `(next day)`。 如果结果将超过一天以后,它应该在时间后面显示 `(n days later)`,其中 "n "是之后的天数。 - -如果给函数提供了可选的开始日期的星期参数,则输出应显示结果的星期几。 输出中的星期几应出现在时间之后和天数之前。 - -以下是函数应处理的不同情况的一些示例。 请注意结果的间距和标点符号。 - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -不要导入任何 Python 库。 假设开始时间是有效时间。 持续时间中的分钟将是小于 60 的整数,但小时可以是任何整数。 - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index 82fa440a106..7ca4d74b8b4 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -在这个项目中,你将通过创建一个咖啡馆菜单来学习 CSS(层叠样式表)的基础知识。 CSS 是一种用于设置 HTML 文档样式的语言。 它描述了 HTML 元素在屏幕上的显示方式。 +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS 是一种用于设置 HTML 文档样式的语言。 它描述了 HTML 元素在屏幕上的显示方式。 正如你在 Cat Photo App 的最后几个步骤中所学习的那样,开始构建你的网页需要一个基本结构。 每个 HTML 文档都应包含 `DOCTYPE` 声明和 `html` 元素。 `DOCTYPE` 告诉浏览器文档的 HTML 版本。 而 `html` 元素代表根元素,它包含所有其他元素。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md index 0dc36a437f0..cf691d72881 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md @@ -15,7 +15,7 @@ HTML 属性是写在一个元素的开始标签中的特殊词汇, ``` -在现有的 `img` 元素中,添加一个具有以下 URL 的 `src` 属性: +Inside the existing `img` element, add a `src` attribute with this URL: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` @@ -27,7 +27,7 @@ HTML 属性是写在一个元素的开始标签中的特殊词汇, assert(document.querySelector('img')); ``` -你的 `img` 元素应该有一个 `src` 属性。 你可能忽略了属性或者有拼写错误。 请确保元素名称和属性名称之间有一个空格。 +Your `img` element should have a `src` attribute. 你可能忽略了属性或者有拼写错误。 请确保元素名称和属性名称之间有一个空格。 ```js assert(document.querySelector('img').src); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md index 72cfd503280..e9317fcca6f 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md @@ -21,7 +21,7 @@ dashedName: step-15 # --hints-- -`img` 元素的 `src` 属性值应为 `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`。 你可能不小心删除了它。 +You should have an `img` element with a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. 你可能不小心删除了它。 ```js assert( diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md index acce1b8868b..a5a17519ca4 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -在无序列表之后,添加一个新图像,它具有 `src` 属性,值为: +After the unordered list, add a new image with a `src` attribute value set to: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` @@ -40,13 +40,13 @@ assert( ); ``` -新图像没有 `src` 属性。 请检查在开始标签的名称后面要有一个空格,且所有的属性名称前面也要有一个空格。 +The new image does not have a `src` attribute. 请检查在开始标签的名称后面要有一个空格,且所有的属性名称前面也要有一个空格。 ```js assert($('section')[1].lastElementChild.hasAttribute('src')); ``` -新图像的 `src` 值应为 `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`。 确保将 `src` 属性的值放在引号中。 +The new image should have a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. 确保将 `src` 属性的值放在引号中。 ```js assert( diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index 772f59a2b2f..32703b7bc8f 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -38,7 +38,7 @@ assert( ); ``` -第三张图像应该有一个 `src` 属性设置为 `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`。 +The third image should have a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index 60e013098e5..2cab9bda421 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -Inside your `.cat-left-ear` element, create another `div` element with the class `cat-left-inner-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -You should not change the existing `div` element with the class `cat-left-ear`. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -You should have a `div` element inside your `.cat-left-ear` element. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -Your `div` element should have the class `cat-left-inner-ear`. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index f1795571c48..00000000000 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: 步骤 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Inside your `.cat-right-ear` element, create another `div` element with the class `cat-right-inner-ear`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-right-ear`. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -You should have a `div` element inside your `.cat-right-ear` element. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index 0b860e754a5..ee0caae40bc 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: 步骤-23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index 13bee5071d0..ce53081aac5 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: 步骤 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index 45881c3314f..538628138c5 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: 步骤 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index 51fdb4de168..697d05881cf 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: 步骤 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index 955d7029607..b37aa9386b2 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: 步骤 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index 5e4171a1572..a15d11652bd 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: 第 28 步 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index 1b57ae2bf0c..728e81fbcde 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: 步骤 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ As you did for the left ear, rotate the right ear at 45 degrees. # --hints-- -You should set the `transform` property of your `.right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. +You should set the `transform` property of your `.cat-right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index c35b3bdc5d8..bcd8818718c 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: 第 30 步 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index 4320cb92e4f..1c5bed7e7e1 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: 步骤 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ The ears should always be placed above the part of the head it overlaps. You can `z-index` is a property you can use to define the order of overlapping HTML elements. Any element with a higher `z-index` will always be positioned over an element with a lower `z-index`. -To see `z-index` in action, set the `z-index`property of the left ear to `-1`. +To see `z-index` in action, set the `z-index` property of the left ear to `-1`. # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index 5e7f0b286bb..bb3dcf1a0ed 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: 步骤 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index 5ba21635ae8..3b3efbf0154 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,13 +1,13 @@ --- id: 646cfde6ac612e5d60391f50 -title: 步骤 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- -Set the `z-index`property of the right ear to `1` so it always stays over the head. +Set the `z-index` property of the right ear to `1` so it always stays over the head. # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index b3a02360353..946620f1758 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: 步骤 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index 2a9bfb003f5..963468c2e2d 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: 步骤 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index bdfac1d3d74..14a5d7aeaf6 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: 步骤 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index c468a2c4e67..c2f979d3992 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: 步骤 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index 03f32161e7c..625e32f4b04 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: 步骤 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index a1e717b65fb..cd41b1ae9d5 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: 步骤 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index d97c2065ee6..f3a52b3a435 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: 步骤 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- You will now start working on the cat's eyes. Like the ears, the eyes will have inner eyes. -Create a `div` element with the class `cat-eyes`. Inside the `cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. +Create a `div` element with the class `cat-eyes`. Inside the `.cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index 36d6bf3cc1a..e6cc303f0f0 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -2,7 +2,7 @@ id: 646ddd3f9f97a0667b964bdb title: 步骤 41 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index b8abcfc6e83..00000000000 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: 步骤 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -Inside the `.cat-right-eye` element, create another `div` element with the class `cat-right-inner-eye`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-left-eye`. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -You should have a `div` element inside your `.cat-right-eye` element. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index cb453db2aa4..3025f51126d 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: 第 43 步 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index b7f558a304f..e3805aff89c 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: 步骤 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Move the left eye into position with a `position` property of `absolute` a `top` of `54px`, and a `left` of `39px`. +Move the left eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `39px`. # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index 48421209f79..eeb4f6d36ea 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: 步骤 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index faabfd99154..aeb0f28cdfb 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: 步骤 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index ed040664061..07eb2b5743c 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: 步骤 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index 5e5b88de0e3..1653bbb1dc4 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: 步骤 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index b5e7c141fe8..6a3aa491180 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: 步骤 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index e1fd8f75155..c236ed959a2 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: 步骤 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index 7dbaeff972c..256aa6b6f3c 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: 步骤 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index 596944e95a4..7905c64a22e 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -2,7 +2,7 @@ id: 646dec359bef3b7811fba5a6 title: 第 52 步 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index 0e39b53ea5a..120d9d7aa61 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: 步骤 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index d96d199d908..fd22b0e9cc9 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: 第 54 步 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index 13eee5e44fc..b8f6c676584 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: 步骤 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index 46139f03eb1..a22b558dcdb 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: 步骤 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index ee337c1efa4..b4ad71b5cf1 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: 步骤 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -13,13 +13,13 @@ Create a `div` element with the class `cat-mouth`. # --hints-- -You should create a `div` element. +You should create a `div` element. ```js assert(document.querySelectorAll('div').length === 13) ``` -Your `div` element should have the class `cat-mouth` +Your `div` element should have the class `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index 1cf8f31a4b2..3a67bcd4a44 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: 步骤 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index 0aabb3eba04..37ce01315b7 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: 步骤 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ Using a class selector, give your `.cat-mouth-line-left` element a `position` of # --hints-- -You should have a `cat-mouth-line-left` selector. +You should have a `.cat-mouth-line-left` selector. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index a4b0e313fb3..1afaafa8827 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: 步骤 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- @@ -11,7 +11,7 @@ Using the `transform` property, rotate the left mouth line at `170` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(170deg)`. +Your `.cat-mouth-line-left` selector should have a `transform` property set to `rotate(170deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')?.transform === 'rotate(170deg)') diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index abde03367f6..a60c0d8e84f 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: 步骤 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index 3fd3f529bd2..cac8db8cac6 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: 步骤 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ Rotate the right mouth line at `165` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(165deg)`. +Your `.cat-mouth-line-right` selector should have a `transform` property set to `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index 83b24299620..aa23dfd3734 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: 步骤 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index 10264488dac..52589e4e58a 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -2,7 +2,7 @@ id: 646f0ef13604420a8744f7d4 title: 第 66 步 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index 73a8b72f429..27c8d1b7436 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: 步骤 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index 84563a7a3c6..2deb1876a86 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: 步骤 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index 3a94f887f42..77ba6057c0d 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: 步骤 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index cfbdc213217..c01636a6571 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: 步骤 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index 0d60a19ea4e..be472910e42 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: 步骤 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index e82ec61c8de..d0c12963155 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: 步骤 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index 4a1f349be90..3d226cf8361 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: 步骤 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index ea092b9ee32..131eb4c27a7 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: 步骤 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index 5fc4c8bd33c..25b09b6b780 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: 步骤 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index 44413ef3c2f..ae6fe0da1e7 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: 步骤 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index 02311442f49..51e0a54f9d3 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: 步骤 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index 89419c3e2d9..3b1df51c87b 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: 步骤 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Use a class selector to target the `cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. +Use a class selector to target the `.cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index 6b5b1ddc320..74373bf86a8 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: 步骤 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index dfdf5cf086f..dc4cc6ac10e 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: 第 81 步 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index ce9e62a0858..b26c9df7044 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: 步骤 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index 8fbd07c9624..35b4ee45dfd 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 You should now center the cat head. -Give the `.cat-head` element a position property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. +Give the `.cat-head` element a `position` property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/649353647c44ef4867ab4935.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/649353647c44ef4867ab4935.md index a7a70f95a81..7103251ef02 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/649353647c44ef4867ab4935.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/649353647c44ef4867ab4935.md @@ -1,6 +1,6 @@ --- id: 649353647c44ef4867ab4935 -title: Step 17 +title: 步骤 17 challengeType: 0 dashedName: step-17 --- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 55e069a80c2..133bb34ac00 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: 步骤 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index e6aff6b7811..9af8da3dc45 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: 步骤 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index aa7727afa2e..e00c9df5cc5 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: 步骤 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 4ed15fb2059..74aa5d6d5a0 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index 34474898fa2..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: 步骤-23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Finally, return the value of `median`. - -Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. However, it is important to remember that shorter code is not always better code. In this case, reducing the lines of code would make the code harder to read and understand, impacting future maintainability. - -# --hints-- - -Your `getMedian` function should return the value of `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index eae1c8c33ea..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: 步骤-23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index ac66397c6b5..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: 步骤 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 94429cc4159..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: 步骤 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index dbe70f8ba0c..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: 步骤 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index 4bc7b60bb5f..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: 第 28 步 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index d5f7423be85..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: 步骤 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index 2284f680ec6..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: 第 30 步 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index 2a0a6dbac76..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: 步骤 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index 47ef458f968..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: 步骤 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -You should return `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index 1fe8b59024c..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: 步骤 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -You should have a constant called `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index 53ecc919aa9..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: 步骤 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index fcfcf970372..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: 步骤 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..beae8d80197 --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index ad6f5e03d64..2ffeec40202 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index 140f5ae9741..09ea03d66ff 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index 5b5153b60e0..ccb8075ff21 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index f3910ed742f..f89706b8feb 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index ab9650e2861..d4dae889d39 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index 0705add13c7..5c09ed4fd19 100644 --- 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 @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index 1c33c3322f6..2569c5bbf8e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index 137783956b9..8c1c4974e3a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index eace6c26d84..5738697b503 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index f59760fb7bb..0ce58ae3c97 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index 936dc8559d4..e68d4b45028 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index ce8069dbe30..7ab41ff406c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index 73e239b2fe9..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: 步骤 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -变量可以被赋予一个值。 当你声明变量时,这个步骤叫作初始化。 例如: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Initialize your `xp` variable to have a value of `0`, a number. - -# --hints-- - -`xp` should have a value of `0`. - -```js -assert.equal(xp, 0); -``` - -You should initialize the `xp` variable to `0`. Don't forget the semi-colon at the end of the line. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index 1397ef4ea94..88366b98a7b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Create another variable called `currentWeapon` and set it to `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -You should use `let` to declare a variable called `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` 你应使用驼峰命名法来命名你的变量。 ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -你的 `currentWeapon` 变量值应设为 `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` 你应将你的变量的值初始化为 `0`。 ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index f1d8606b10a..cedfe0c0cca 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index 8b2c6fa4209..507822fda64 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index 2510d153272..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: 步骤 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -The variables you have assigned have all had values that are numbers. JavaScript has multiple different data types. The next one you will use is the string. Strings are used to store things like words or text. Strings are surrounded with double quotes, single quotes, or backticks. Here is an example of declaring a variable with a string: - -```js -let developer = "Naomi"; -``` - -Assign the `inventory` variable to have the value of `stick`. - -# --hints-- - -You should set `inventory` to the string `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -You should initialize your `inventory` variable with the string `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index 67af1aba0b1..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: 步骤 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -The player's inventory in your game will be able to hold multiple items. You will need to use a data type that can do this. An array can be used to hold multiple values. For example: - -```js -let order = ["first", "second", "third"]; -``` - -This is an array which holds three values. Notice how the values are separated by commas. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -Your `inventory` variable should be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should have three values. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -Your `inventory` variable should have the values in the correct order. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index 34244e6de0f..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: 第 14 步 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -Your `inventory` variable should still be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should only have one value. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index ddd3929571d..c6c0383a210 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index 63b8f3a8475..9caf7e829c1 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index 491cbbb3fe3..01d81e0c3b4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index 88bcd739238..4e05e0cab79 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index 5712b97cbab..5e114d337ab 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 32cd3d6a758..1a0976099be 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index 0d1dfed3a01..3797e2709d6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 902edafc6b3..8236d006fdf 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 2638ce9ae52..ecd7b41e551 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 46025e90ee2..4899b136971 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index 9c32e8c1252..8296895dd81 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 7c76591109f..1e0c4282c4f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 2be712694cf..a5fcd2f1dec 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index cc90d211dd4..6040d1028d3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index b0dfcbb9d7b..2998105596f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index d1a2df0ea4b..1210d1b0e3b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 5b43ac85352..752b1671817 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index bccfb6b8499..6f4b7626510 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index 353d61ea5b0..9fa40be79c3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 1841ae43c76..25e82fda63c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 1a4ddfa7458..14eefc67a6e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index 76021312584..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: 步骤 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -Object properties are written as `key: value` pairs, where `key` is the name of the property (or the key), and `value` is the value that property holds. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"town square"`. - -# --hints-- - -Your first value of `locations` should be an object. - -```js -assert.isObject(locations[0]); -``` - -Your first value of `locations` should have a `name` property. - -```js -assert.isDefined(locations[0].name); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index 12891538908..6474b8db7c7 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index c318e051bc8..4ed6343fd96 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 4337bbb7817..442032d8950 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index 84e25aa3479..75a9b22ce50 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index b3d8e3a6ced..cb2e7bdaeaa 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 76419553abe..05f08bb6a19 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 6a2fd6dd18e..60ab0a2b874 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index ee22bd5db18..44fd2f7eb9c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index 42fa1b7156b..1dc5232b378 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 6df6d825b45..b54ee029164 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index 64dbdadcc64..5dbb6907d42 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index 69288ecb4e1..88610822650 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index 0bc2ea4f339..9eecaaee678 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index 7e8b7d6f71e..1848eab1431 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index cb1dab4a818..dda03f4aa4a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 87f4686de53..1b71205f170 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index b0c4f008224..eb77b88b3b0 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 7f9be4c607c..10e1f6ce3fa 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 43844bfd6fa..2ea876ddf24 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index 407ef30337e..addf8147369 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index b32a4624174..83b34def3df 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index 03a101706ac..646a274c94a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index 1c69632cc16..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: 步骤 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -The `condition` string is just a placeholder. Change the `if` statement condition to check if `gold` is greater than or equal to `10`. - -Here is an `if` statement that checks if `num` is greater than or equal to `5`: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -Your `if` statement should check if `gold` is greater than or equal to `10`. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -Your `buyHealth` function should update `health` and `gold` if `gold` is greater than or equal to `10`. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -Your `buyHealth` function should not update `health` and `gold` if `gold` is less than `10`. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index 23684174766..c2df7ba8924 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index a5108647216..e35ee493c6b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index df552626f1b..adad93a5c6b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index 9a18056f74e..470f9065bec 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index 57cf505e52b..bb8a07042e3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index a210376fd75..b3592e5aa14 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index 641048de2e1..0f65c77df04 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -The value of the `currentWeapon` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -In the `buyWeapon` function, use compound assignment to add `1` to `currentWeapon` - the user is buying the next weapon in the `weapons` array. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -You should use compound assignment to add one to `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -Your `buyWeapon` function should increase `currentWeapon` by `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Your code should be in your `if` statement. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index a4c118f6f3d..1bd4b3f4533 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Change your `currentWeapon` assignment to use the increment operator. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -You should use the increment operator to increase `currentWeapon` by `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -You should not use compound assignment to increase `currentWeapon` by `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 0288af76ebf..da2f57a2940 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 0509fd0209f..bd061db00af 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 0ce8646d7ba..d72680595d4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeapon` within the brackets. +Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeaponIndex` within the brackets. When you use a variable in bracket notation, you are accessing the property or index by the *value* of that variable. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index eb78febdb46..6f6157eec95 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` is an object. Use dot notation to get the `name` property of that object. +`weapons[currentWeaponIndex]` is an object. Use dot notation to get the `name` property of that object. # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 065a312d032..b4717bed9e8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 33fcfc81e1d..1d2fa00beec 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ Your `buyWeapon` function should add the value of `newWeapon` to the `inventory` ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index c2c10d03e5b..5443169577e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index 049fa2470e9..baf137a8530 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index 0843051f507..47211f51cf4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index 35bd5b0666b..cd43584c827 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeapon` is less than `3` - the index of the last weapon. +Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -You should have a new `if` statement that checks if `currentWeapon` is less than `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` Your existing `if` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); Your existing `else` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index 71fd3d9c5b4..663cb53c8c4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Arrays have a `length` property that returns the number of items in the array. You may want to add new values to the `weapons` array in the future. -Change your `if` condition to check if `currentWeapon` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ You should use the `length` property on the `weapons` array. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -Your `if` statement should check if `currentWeapon` is less than `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index 00bcc81def5..4632b674d6f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -The `currentWeapon` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. Change the `if` condition to check `weapons.length - 1`, instead of `weapons.length`. @@ -23,10 +23,10 @@ You should update the condition to subtract `1` from `weapons.length`. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -Your condition should check if `currentWeapon` is less than `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 88e988b4342..cc1c4b8273d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 7beafd0a495..041472b56b8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 194d6d2130b..cc73efed14f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index a23450f5ed4..763f646b62b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 0d176b81c7f..975c6446f0f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index 0032e30ee54..93b5c9babb8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Notice that you already have a `currentWeapon` variable elsewhere in your code. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 4e7f9117a26..59e803ef18d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index 0ce7ffb6314..d53accb8e69 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` Your `text.innerText` should update to the proper string. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index 44e4ab1926b..65721659631 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index f5bbad9e0d1..682a5fe76bd 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index b92571d3d30..abd86e35b27 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 7a5458fd606..1c6cd769027 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index a1daed21eef..3b555e0f9f9 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index 331e94c38eb..39a1ab9c522 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 2c8be2f2d00..9d1aebd3d08 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index c26c417f4d0..2312c7efe25 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 507f9e51e21..96029139026 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index eb32394270b..56b799d223d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index a0347f9ae7a..a6a5b7f146f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 437ca16fc9b..2b27d636b1f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index d370d9899e7..c9db1c10266 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index c6f89860b85..bb8a96a906d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeapon].name`. +You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index c66f059b602..040babab4ec 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index d59c6a933e7..6225b405f50 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Using these, you can generate a random number within a range. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ You should use the same `monsterHealth` line you already wrote. assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -You should add to the `weapons[currentWeapon].power` value. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` You should use `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? You should add the result of `Math.floor(Math.random() * xp) + 1` to the result of `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index d68134d2350..274040289a1 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index 70125dd2736..a2bbdbb26ef 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index 8535d022b60..562512717f1 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 3be7b4a8355..d7ef1c1dac8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index d5af7299e44..ac255663e19 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index 81d4dd2883d..0aede6aa27a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index 110f82cbd5b..22817a6e62f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 35a05b443aa..be06a139e03 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 024b4959d65..5766abd424a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index 3bca3e5c383..f6b904e02c3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index c1f3457b7c5..405a97fa6e2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 3ad57b17036..5d78cc4d0b5 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 641e365bf76..9286fc33eb0 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 5ff1b213382..22c13f88c2b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeapon` to `0`, and set `inventory` to an array with the string `stick`. +At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Also update the `innerText` properties of `goldText`, `healthText`, and `xpText` to their current values. @@ -39,10 +39,10 @@ Your `restart` function should set `gold` to `50`. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -Your `restart` function should set `currentWeapon` to `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 3f0337d819c..a132b990d3c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index 4e2d63fa3e4..bf52667c43c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index d2a90985389..64f1608dca8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 70aba3f268f..d0e42d966e9 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 6182eded447..3bffb635e7c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index f78bcc852ed..40f97346247 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index 9f445ec93ad..c2c3182d6e6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index 260c251d988..80f46ed68bb 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index cfcb369caf4..53616b731e2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 1b7a89f353f..632abe728dd 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index 4c7363d5341..7da1800af5e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ Move your `monsterHealth` assignment into your `if` block. # --hints-- -You should move your `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` into your `if` block. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index a1775d7543b..e6ce6f4616a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct You should add an `else` block after your `if (isMonsterHit())` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index b252fbcf399..d055272185f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 9219b8da936..3b985e1dbd3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 4bca7930754..fcb4a8b153e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 308f53fd795..9e1a123a719 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 0aecde7e233..28d47dffdff 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Decrement the value of `currentWeapon` in your `if` statement, after you update the text. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ You should use the decrement operator. assert.match(attack.toString(), /--/); ``` -You should decrement `currentWeapon` in your `if` statement. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index fb88f652092..aa926a8b8d8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index cd37a91ca95..f557c577bb8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index f2c2ae3c598..705c25660dd 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index 79c7d778612..448f8d4340f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index 9cf97ef1f86..8e5ad353975 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index 83033ff3dbc..d01dd88b87d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index 063a234a21f..a38db8728e8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index a674632b49b..a8fa573a795 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index 1ef1456647a..af13af000e3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 1eb6aa4c1f1..ee1f17b327b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index 9da6c0e84f1..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -`for` loops are declared with three expressions separated by semicolons. `for (a; b; c)`, where `a` is the initialization expression, `b` is the condition, and `c` is the final expression. - -The initialization expression is executed only once, before the loop starts, and is often used to define and set up the loop variable. Think of it like declaring a counter to use in your loop. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -You should change your initialization in the `for` loop to be `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index 346adeb6fa0..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -The second statement in a `for` loop, the condition statement, is evaluated at the beginning of every loop iteration. The loop will continue as long as the condition evaluates to be true. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -You should update your condition statement to be `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index 1dd28e8ad74..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -The last statement in a `for` loop, the final expression, is executed at the end of each loop iteration. - -Since we changed the initialization statement to use `i` instead of `x`, change `x++` to `i++`. This will increment the initializer `i` by 1 after each loop. - -# --hints-- - -You should change your final expression to `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index 71875c1a0ea..6045c2ab02f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 5d2de454974..5c01ee608a2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index 659e9a1e4b1..51a72303ff2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index b0868a55bf0..3b46e0900dc 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 9529fc8fd22..4512a7da93a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index 1d469bc20f5..5c4f5f86ec5 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index db3e2b0cc04..e584e963759 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index 4210e30d01c..727d1e77172 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index fd964689daa..d0f89e89f03 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index c38becdee8c..52cf362e9fa 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index 27be8c27ee8..3cb2f0de300 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index 5a16ce1941d..8a2c4807da1 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index 7865c6c67f0..8d03c2c6916 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index 47755d06845..75778d2d466 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index c1dff817fc0..da2b2f7ff71 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -You should declare a `cleanInputString` variable. -```js -assert.isDefined(cleanInputString); -``` -Your `cleanInputString` variable should be a function. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index 03c572bffd9..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: 步骤 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -You need to split your `str` into individual characters. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -Your `cleanInputString` function should declare a `strArray` variable. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Your `strArray` variable should be assigned the value of `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index 8ec94b03b0c..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: 步骤 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Declare a `cleanStrArray` variable and assign it an empty array. You will use this to store your valid number characters. - -# --hints-- - -Your `cleanInputString` should declare a variable called `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Your `cleanStrArray` variable should be assigned an empty array. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index 7f92ea9ce3b..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: 步骤21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Use a `for` loop to iterate through each character in your `strArray` array. - -# --hints-- - -Your `cleanInputString` function should have a `for` loop. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Your `for` loop should initialize a variable called `i` to `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Your `for` loop should have a condition that checks if `i` is less than the length of `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Your `for` loop should increment `i` by `1` each time it runs. Use the increment operator for this. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index 1ffc252a3f3..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: 步骤 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). If it is not, `push` it to the `cleanStrArray`. - -# --hints-- - -Your `for` loop should have an `if` statement. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Your `for` loop should use `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Your `for` loop should `push` `strArray[i]` to `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 4ecae222222..0f955c403d9 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Start by creating a function called `isInvalidInput` – it should take a single # --hints-- -You should declare an `isInvalidInput` variable. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` should be a function. ```js diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index 5fe11ad76a0..9a7c21d3716 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Your next step is to allow users to add entries to the calorie counter. Declare # --hints-- -You should declare an `addEntry` variable. - -```js -assert.isDefined(addEntry); -``` - -Your `addEntry` variable should be a function. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 36dd00d3c4a..0bcac8cff89 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; 变量的命名遵循特定的规则:名称能够包含字母、数字、美元符号以及下划线,但是不能包含空格,且一定不能以数字开头。 -在你的代码中声明一个 `character` 变量。 +Use the `let` keyword to declare a variable called `character`. _注意_ :通常我们会以分号来结束JavaScript中的语句, `;` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index a32c328f9a3..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: 步骤 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index 5e97d7868b8..00000000000 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: 步骤15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -To check if the `Object.freeze()` method is working, you can try to assign a new value to one of the existing properties. - -Below the `Object.freeze(myFavoriteFootballTeam)`, assign the `USA` string to `myFavoriteFootballTeam.team`. Below that, add a `console.log` for `myFavoriteFootballTeam.team`. - -When you open up the console, you will see an `Uncaught TypeError` message. This error appears because the `Object.freeze()` method does not allow you to overwrite that value. - -# --hints-- - -You should assign the `USA` string to `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -You should add a `console.log` for `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index 441a3641bcf..828a135c0c7 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index e0046530416..703c6a893bf 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 2984a21dce5..ccd01dfadb8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index b061431ea35..56f8a8c5bdb 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index c34cf6c5ed2..203a94722c6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index 99cf8901a86..3fdb9ba1681 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index 1c97d16395a..111f5cfac45 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index d435f4e2bde..67cdc6e9dfb 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index 35b4f582043..b1d46ef0153 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index b14965ddb08..bd233266efd 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index e7d737c110b..fe358dc021c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index e4b603eea5c..2c5b0f3046a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index 39091aeeffc..3aa6591ab4d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index e5ef090195f..d07212cbd18 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index e113f31b78f..72eafe1bad8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index f4cdd4f7a27..dc901583694 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index fe769699ad8..c18ac9cc669 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index e3dba975397..6490669dd9c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index 85fae5e8755..873984eec34 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index 35d2bf1e89a..4186e536221 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index 4cacb9e3815..f6d531bdfe4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index d0daa39836b..062d1a7a953 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index b5daddeb237..218bb1f828f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index 731d9aef8fd..9ee4e7b8c49 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index 843fda4aec6..8a408b641e5 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index 752158c5e06..e50496c6802 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index 023234e97f5..daea118ce4f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 6d9e1a05e6c..748bb271c7f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index 01ce77a06e5..f591b38de0e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index bee8af4710a..2afcfb264ce 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index dbe634af444..0c417f08059 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index 6da42948b1b..2aa64aa3de2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index a43f5185122..b8ce0222ec1 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index 8c078ce08d3..9258e03c315 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index 9bdd78621e5..393eb943dcc 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index b81b27a2317..76533c47744 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index 2dd0498a1e6..a9ff3103062 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index adee82eb862..5c0991be641 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index 0946a714372..42832525fe7 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index ab4e4e26401..0bb4fc2e691 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index b6967b4eaf0..fd0a727bad6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index b445994c0b7..2b0d1842450 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index fe992d5de37..874dfc5e4ff 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index a724dc149e2..6996fd1e640 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 2e6d1b967f5..db476cd12b9 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index 252e24f284f..06086b04dcb 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index 790ae5f5587..fea00bd81e1 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index 7f9309d6f3e..71a2ccde21a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index 4a5b03c69d0..7446fde8308 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index 60781d61500..b17efa54232 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index a717d233133..fac538d124e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 4d1ce5944a0..44e256e4b40 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index 1b6d83a3dbf..deeea35d808 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 5414c45f1a8..0e7a71ee934 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index f108ec0becc..6429fc7ce40 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index 2f5209be7a8..830c343d159 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index d397476d764..c1e1e98c83d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index 3fb7c249335..2a60ad3e397 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index 7700bcd043d..959ad1bc7ef 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index 19a22cb7dfc..28e7e233cef 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index 05508de9504..8aa1c21a526 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index 8dc3307b00c..6e0282f1242 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index 09fe3159f58..667ad5d43de 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index a7a34f89f99..885356a360f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index 613826af46b..b859405892c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index 1660bb8d49c..27597dc5bf6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index 9867f3d4bf6..8e486a4611c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index 3e0eb969d2f..792a20c3f55 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index fc9849b5e83..382ed3a6bcb 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index db58130ce5e..2f569b07e5a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index 4ba76211b90..d22121fa789 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index d53d76273b8..ae8556e8830 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 54684d2341c..699db6c4d9e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index 8b95a8a9136..26b140c7949 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index 0b445f26df4..d294a6a2e60 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index bc936c5f72b..09bee6e6dfc 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index 003840708a2..8bbc7b2b673 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index f00f0b7eb41..23c2de8c78d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index 7dbcb36dd1a..3cb182aba38 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index 0f5c1e2f181..17401c62e60 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 08b12b51c25..55e11fea569 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index 53a6c365b16..dacb3a7c9b3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index 2860d923305..3430fa9afe4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index f97af0e7fc2..bf3f04c75e4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index 646bb548582..41113941218 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index 19b52264765..6ad4f4d743a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index f7bfd05f58c..9f4cf71b03d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index ad5e3da9e54..50f2fa45e10 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index a62fd9b7bee..14c37b73ffe 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 5a4cb917a7d..be640af82ef 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index 61ef6b050b2..a22fe67b497 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index 519f2224bd8..075331e0210 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index dbe744bee64..e795498c1b4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index 12f085db324..c8f2bfc7670 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index 1f270189168..40fc4b3fcdd 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index a1c40c87273..756db255dc4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index 2b73ea3baad..2f4a1873f8a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index 083b562b34f..29e6e503644 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index 5598c54fb5e..8ac389bb821 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index 4274633ed79..c66298e3fd5 100644 --- a/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Working with Text Question H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index 05765087c87..75fc123e8a2 100644 --- a/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Working with Text Question I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index e496b6b12a8..35c0cd937ec 100644 --- a/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Working with Text Question J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/chinese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/chinese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 5f3c4e3432f..c9edf1897b0 100644 --- a/curriculum/challenges/chinese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/chinese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 225145dfe7f..c68cbd711ef 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialogue 2: Tom Meets the Coworker Next To Him" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index 857d52d4c51..fa5b427fdc5 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Task 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index f4aa31f6a6c..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 1b087682364..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --sentence-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## --blanks-- - -`didn't` - -### --feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index 43b5c3843f8..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index 4c0322b1b0f..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 58264d164ab..64b715aa939 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index e102c46218d..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..7f272358313 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index bf7865a73a2..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index e02417784c6..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index 6ba183e664c..1e8c30a1728 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 6511efe40ea..8463015c3dc 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index 8a2c8dd0750..89f089f9064 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 2621f3636cf..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index 29a63298da8..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index 79f5adce5ad..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..c2978af6438 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index a5501b2fb60..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index bdc81f3b00d..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..ff4175f051d --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..e00c53331df --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index a12a36533d7..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index dbb7debe2ff..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index 377146f299e..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index 158f7985b5e..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index 8b146507711..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..6947fe048c2 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..e05448d9d48 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Task 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..aaa7a3890de 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Task 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..ea5416f070f 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Task 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..91066451909 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Task 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..109deef84e4 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Task 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..5bd0b159b4a 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Task 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..527d24103b0 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Task 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..b536269cb5a 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Task 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..9ea5dfd2ec2 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Task 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..0031c5026bb 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Task 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..dc9412ebb8f 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Task 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..53772f4f629 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Task 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..564de6f07b1 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Task 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1f031ee3f1e 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Task 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..f2d572900d8 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Task 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..4b818dc4a70 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Task 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..707eb0d122d 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Task 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..e117e9317d8 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Task 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..5b4096f746c 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Task 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..7221646546e 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Task 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..03428f51432 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Task 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..287f03ddd1e 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Task 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..1538fbae725 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Task 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..331abe3703f 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Task 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..93862c576dc 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Task 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..5afcfa7c916 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Task 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..7937868764f 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Task 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..bf7fa023589 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Task 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..304a2c583d8 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Task 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..98e230933ca 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Task 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..054af388b35 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Task 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..3a5f7c3594b 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Task 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ff7dad74588 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..d41cb232f9c 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Task 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..a29433a1b9a 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Task 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..d29b5313cd6 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Task 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..aa9a85fb288 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Task 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..7eed555b4e1 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Task 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..fd66f011103 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Task 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..198f4c0b6e9 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Task 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..db488ae0a03 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Task 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..fcebb2960ea 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Task 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..b3152c55726 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Task 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..921551d84e0 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Task 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..778df3691d7 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Task 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..cf208824a34 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Task 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..7d49d97efb2 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Task 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..924dc459772 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..32c51e43652 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Task 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..bb730a97243 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Task 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..b96607f08e3 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Task 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..1649db7e147 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Task 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..4d1c3371618 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Task 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..7161861383e 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Task 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..000ef53d2ef 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Task 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..f9abd0109a4 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Task 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..b13756997fc 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Task 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..2de180a58c7 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Task 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..0866794a4e5 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Task 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..610f7a26d7a 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Task 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..185183a0410 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Task 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index 139673c8904..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index d11360e7f4f..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index 46a0c0fb5e5..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 4f580fee058..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index cd05a44e717..00000000000 --- a/curriculum/challenges/chinese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --作业-- - -Watch the video diff --git a/curriculum/challenges/espanol/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/espanol/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index 39aa5c456fb..946f7548d47 100644 --- a/curriculum/challenges/espanol/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/espanol/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: Usa la etiqueta s para tachar texto challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/espanol/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/espanol/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index 1f021c6835d..fde1b0da1ef 100644 --- a/curriculum/challenges/espanol/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/espanol/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: Mejora la compatibilidad con navegadores por medio de configuraciones de respaldo o "browser fallbacks" challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index f037a839d7c..a5ed89af558 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: Asigna el valor de una variable a otra variable challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index 47ca51465b2..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: Paso 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index c676176040d..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: Paso 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index e0f641cfa1c..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: Paso 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index 3c5fd9afa2e..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: Paso 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index 234043a5b1b..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: Paso 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index 772e91e6a6f..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: Paso 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index 59a721669dc..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: Paso 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index 7f659c1802f..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: Paso 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index c3d8e801494..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: Paso 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index a2bcf7244b1..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: Paso 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index a759185e972..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: Paso 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index e1b87005922..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: Paso 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index 06a8bd54889..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: Paso 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index 39014e32938..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: Paso 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index e5f9892e9ab..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: Paso 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index 4cba972259e..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: Paso 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index ec9bf362d35..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: Paso 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index b87d6cf339a..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: Paso 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index d2221c327c9..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: Paso 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index 39b6636f5b2..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: Paso 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index c2b5a397954..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: Paso 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index 3aaccb27ce2..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: Paso 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index 6c795a47f6e..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: Paso 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index 98dd7be9197..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: Paso 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index 9fe60907321..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: Paso 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index e5f223b8b3c..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: Paso 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index 1e9393e73ed..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: Paso 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index da49d61de33..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: Paso 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index 08db332cb43..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: Paso 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index 7f8a4e7f550..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: Paso 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index 438b2383eba..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: Paso 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index b4717fc1c6a..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: Paso 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index 3830d919bd2..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: Paso 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index 36c741ba9e7..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: Paso 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index 220e7c0dfff..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: Paso 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index 11f3ed0fdd2..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: Paso 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index ed37ba684e3..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: Paso 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index 7c65bfaada3..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: Paso 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index d269bff165b..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: Paso 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index 34e3db06afd..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: Paso 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index a4457d298f8..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: Paso 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index d5fae3a5f0c..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: Paso 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index efcc5aefb35..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: Paso 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index 08feb781e50..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: Paso 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index 1ee4f0be796..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: Paso 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index 8fe93302118..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: Paso 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index b1ca316a60f..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: Paso 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index fe5258bf64a..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: Paso 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index f3d20dec33b..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: Paso 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index 36c974bfbfc..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: Paso 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index 6ab08fed0fd..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: Paso 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 97566d7049c..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: Paso 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index d44505c670b..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: Paso 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index 692f83e904b..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: Paso 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index dfbaaa24311..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: Paso 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index 9a66688396b..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: Paso 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index 061703a0baa..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: Paso 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index 12ff036a4b0..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: Paso 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index 9f697bd43c3..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: Paso 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 6af799f6fa5..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: Paso 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index 5d11c5d2888..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: Paso 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index 8d1b105c075..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: Paso 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index ebc8b49d682..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: Paso 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index 7b68c6770bf..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: Paso 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index 9e1c9d2a5ee..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: Paso 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index b209c3cec3f..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: Paso 66 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index acf062daee9..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: Paso 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index e2e3dd717f2..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: Paso 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index b6ffb88fd78..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: Paso 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index 6b9169dbe08..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: Paso 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index 6a2d385d98b..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: Paso 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index d63a2729a7f..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: Paso 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index e1b5e657cf8..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: Paso 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index f23c399aff2..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: Paso 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index 7bf43d16c79..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: Paso 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index 73bcdd8e42e..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: Paso 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index df97f9d444c..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: Paso 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index ea1e4e9d803..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: Paso 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index 87517161298..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: Paso 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index 2e3c8c600d1..670875e6385 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -13,7 +13,7 @@ Start by defining a function named `add_expense` that takes three parameters: `e # --hints-- -You should declare a function named `add_expense`. +You should use the `def` keyword to declare a function named `add_expense`. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index b7842b95b29..6a738bdf2be 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -7,13 +7,13 @@ dashedName: step-2 # --description-- -A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets `[]`, with each item separated from the following one by a comma. +A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets (`[]`), with each item separated from the following one by a comma. ```py numbers = [1, 2, 3, 4] ``` -Create an empty list named `expenses`. You will use it to store each of your expenses. +Use a pair of square brackets to create an empty list named `expenses`. You will use it to store each of your expenses. # --hints-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index a8cab4a0c12..952d486dc62 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -7,21 +7,29 @@ dashedName: step-3 # --description-- -The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you can use the `.append()` list method: +The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you'll use the `.append()` list method: ```py my_list = [2, 4, 7] my_list.append(3) ``` -In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. +In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. + +Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. # --hints-- You should have `expenses.append()` in your function. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\)/m) +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append()")`)) }) +``` + +You should not have `pass` in your function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("add_expense").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index 244c7b63fbe..7fa58d26f18 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -7,7 +7,7 @@ dashedName: step-4 # --description-- -A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces `{}` and they contain key-value pairs separated by commas. Each key is followed by a colon `:` and the value: +A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces (`{}`) and they contain key-value pairs separated by commas. Each key is followed by a colon (`:`) and the value: ```py {'amount': 50.0, 'category': 'Food'} @@ -19,10 +19,20 @@ Create a dictionary with a key `'amount'` and value of the `amount` parameter an # --hints-- -You should have `expenses.append({'amount': amount})` in your function. +You should pass a dictionary as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) +`)) }) +``` + +You should pass `{'amount': amount}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index 02e9d484983..1d9a9b65ffe 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -11,10 +11,20 @@ Add another key-value pair to the dictionary you are appending to the `expense` # --hints-- -You should have `expenses.append({'amount': amount, 'category': category})` in your code. +You should add a second key-value pair to the dictionary you are passing as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*,\s*("|')category\2\s*:\s*category\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) and len(node[0].tree.keys) == 2 +`)) }) +``` + +You should pass `{'amount': amount, 'category': category}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount, 'category': category})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index 28f3a421ed1..69f73d507a0 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -Start by defining a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. +Next, define a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. Fill the body of your new function with a `pass` statement. diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index ad91199f23e..e058e5d45c6 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -11,10 +11,22 @@ Inside the `print_expenses` function, create a `for` loop that iterates over eac # --hints-- -You should have `for expense in expenses:` in your `print_expenses` function. Remember to use `pass` within the loop body. +You should create a `for` loop that iterates over `expenses` in your `print_expenses` function. Remember to use `pass` within the loop body. ```js -({ test: () => assert.match(code, /for\s+expense\s+in\s+expenses\s*:/ ) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_iter().is_equivalent("expenses")`)) }) +``` + +You should use `expense` as the loop variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_vars().is_equivalent("expense")`)) }) +``` + +You should have `pass` only inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index 2a2fddb576a..e5a9f52b38c 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -9,14 +9,20 @@ dashedName: step-8 Next, you are going to display the details for each expense. -Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. Leave the placeholders empty for now. +Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. # --hints-- -You should have `print(f'Amount: {expense}, Category: {expense}')` in your `for` loop. +You should print `f'Amount: {expense}, Category: {expense}'` in your `for` loop. ```js -({ test: () => assert.match(code, /^\s+print\s*\(\s*f("|')Amount: \{\s*expense\s*\}, Category: \{\s*expense\s*\}\1\s*\)/m) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].has_call("print(f'Amount: {expense}, Category: {expense}')")`)) }) +``` + +You should not have `pass` inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_bodies()[0].has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index 1d7961d3b90..0d04e453457 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -7,7 +7,12 @@ dashedName: step-9 # --description-- -You can access values in a dictionary through its keys. You need to use the bracket notation and include the key between the square brackets: +In Python, an important thing to know is that the same type of quote used to define a string cannot be used inside it. For example, the string `'I'm a string!'` is not valid. To use the single quote inside that string you should either: + +- Escape the quote by prepending a backlash to it: `'I\'m a string!'` +- Or use double quotes to define the string: `"I'm a string!"` (preferred). + +You can access values in a dictionary through its keys. You need to use bracket notation and include the key between the square brackets: ```py my_dict = {'amount': 50.0, 'category': 'Food'} diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index 52f16f9cab4..2d7c1f7060a 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -7,7 +7,9 @@ dashedName: step-10 # --description-- -You will need a function to calculate the total amount of expenses. Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. +You will need a function to calculate the total amount of expenses. + +Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. # --hints-- @@ -21,7 +23,7 @@ You should define a function named `total_expenses`. }) ``` -Your`total_expenses` function should take a single `expenses` parameter. +Your `total_expenses` function should take a single `expenses` parameter. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index f5738d3a58a..09587acf87e 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -13,14 +13,22 @@ Lambda functions are brief, anonymous functions in Python, ideal for simple, one lambda x: expr ``` -In the example above, `x` is a parameter to be used in the expression `expr`. Create a `test` variable and assign it a lambda function that takes an `x` parameter and returns `x * 2`. +In the example above, `x` represents a parameter to be used in the expression `expr`, and it acts just like any parameter in a traditional function. `expr` is the expression that gets evaluated and returned when the lambda function is called. + +Create a variable named `test` and assign it a lambda function that takes an `x` parameter and returns `x * 2`. # --hints-- -You should have `test = lambda x: x * 2` in your code. +You should declare a variable named `test`. ```js -({ test: () => assert.match(code,/^test\s*=\s*lambda\s+x\s*:\s*x\s*\*\s*2/m)}) +({ test: () => assert(runPython(`_Node(_code).has_variable("test")`))}) +``` + +You should assign `lambda x: x * 2` to your `test` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_variable("test").is_equivalent("test = lambda x: x * 2")`))}) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index ccba8ba497a..a03d90f22c9 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -13,9 +13,11 @@ Lambda functions can be valuably combined with the `map()` function, which execu map(lambda x: x * 2, [1, 2, 3]) ``` +The function to execute is passed as the first argument, and the iterable is passed as the second argument. + The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index 4b40036a2f6..0d904e4d542 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -1,6 +1,6 @@ --- id: 658238f7604f154ea9a23e1e -title: Paso 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- @@ -9,7 +9,7 @@ dashedName: step-15 The `sum()` function returns the sum of the items in the iterable which is passed as its argument. You are going to use `sum()` together with `map()` and `lambda` functions to get the total amount of expenses. -For now, make a little test and modify your current `print()` call by passing `sum(map(test, [2, 3, 5, 8]))` as the argument. +For now, make a little test and modify your current `print()` call replacing the `list()` call with a call to the `sum()` function passing it the current `map()` call as the argument. # --hints-- @@ -36,7 +36,7 @@ def total_expenses(expenses): --fcc-editable-region-- test = lambda x: x * 2 -print(map(test, [2, 3, 5, 8])) +print(list(map(test, [2,3,5,8]))) --fcc-editable-region-- expenses = [] diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index 596a67ce30b..0c4b5191a9a 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -1,28 +1,22 @@ --- id: 65823b0167fd894f4a7ea60a -title: Paso 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- # --description-- -Next, you are going to implement the same logic to the `total_expenses` function. +Next, you are going to implement the same logic within the `total_expenses` function. For now, delete both the `test` function and the `print()` call. # --hints-- -You should delete your `test` variable. +You should delete your `test` variable and the related `print()` call. ```js -({ test: () => assert.notMatch(code, /test\s*=/) }) -``` - -You should delete your `print(sum(map(test, [2, 3, 5, 8])))` call. - -```js -({ test: () => assert.notMatch(code, /print\s*\(\s*sum/) }) +({ test: () => assert.isFalse(runPython(`_Node(_code).has_variable("test")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index 503c48eda5f..af93b0e12fc 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -1,27 +1,28 @@ --- id: 65823bbbdb4eaa4f9d20a0fb -title: Paso 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- # --description-- -Within your `total_expenses` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the value of the `'amount'` key in the `expense` dictionary. +In the `total_expenses` function, you'll now integrate a lambda function. Replace `pass` with a lambda function that has `expense` as its parameter. + +`expense` is expected to be a dictionary, and your lambda function should return the value of the `'amount'` key in the `expense` dictionary. # --hints-- -You should have `lambda expense: expense['amount']` in your `total_expenses` function. +You should create a `lambda` function that uses the parameter `expense` and returns `expense['amount']` in your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_stmt("lambda expense: expense['amount']")`)) }) +``` + +You should not have `pass` in your `total_expenses` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("total_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index dded1c6d3fe..c06ab93c264 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -1,6 +1,6 @@ --- id: 65823cfc74aa564ffc460489 -title: Paso 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- @@ -11,17 +11,22 @@ Now, call `map()` passing your `lambda` function as the first argument and the ` # --hints-- -You should have `map(lambda expense: expense['amount'], expenses)` in your code. +You should call the `map()` function inside the `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("total_expenses").find_calls("map")) == 1`)) }) +``` + +You should pass your `lambda` function as the first argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[0].is_equivalent("lambda expense: expense['amount']")`)) }) +``` + +You should pass the `expenses` list as the second argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index 3b1fef12c58..29c09ae0262 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -1,6 +1,6 @@ --- id: 65823dde36392f505a39f7c7 -title: Paso 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- @@ -11,17 +11,10 @@ Finally, pass your `map()` call to the `sum()` function to obtain the total expe # --hints-- -You should return `sum(map(lambda expense: expense['amount'], expenses))` from your `total_expenses` function. +You should call the `sum()` function passing it your current `map()` call as the argument and return the result from your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+sum\s*\(\s*map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_return("sum(map(lambda expense: expense['amount'], expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index 89b1cecd78b..63af9be4151 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -1,6 +1,6 @@ --- id: 65823e87c9741750a22085a7 -title: Paso 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index 5ed5fe358f8..289c306da64 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -1,27 +1,26 @@ --- id: 65823ff0d4b991510fade1a8 -title: Paso 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- # --description-- -Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category`. +Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -You should have `lambda expense: expense['category'] == category` inside the `filter_expenses_by_category` function. +You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) +``` + +You should not have `pass` inside the `filter_expenses_by_category` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index 3b0b0b1df6d..fc8cab1fff0 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -1,6 +1,6 @@ --- id: 65824111a09164518320088d -title: Paso 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- @@ -13,23 +13,30 @@ The `filter()` function allows you to select items from an iterable, such as a l filter(my_function, my_list) ``` -`filter()` returns an iterator in which the elements of `my_list` are included, for which `my_function` returns `True`. An iterator is a special object that enables you to iterate over the elements of a collection, like a list. +`filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. + +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. # --hints-- -You should have `filter(lambda expense: expense['category'] == category, expenses)` in your `filter_expenses_by_category` function. +You should call `filter()` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")) == 1`)) }) +``` + +You should pass `lambda expense: expense['category'] == category` as the first argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[0].is_equivalent("lambda expense: expense['category'] == category")`)) }) +``` + +You should pass `expenses` as the second argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index 7380050508a..f0f6c12e365 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -1,6 +1,6 @@ --- id: 658244fdf4b0265334711664 -title: Paso 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- @@ -14,14 +14,7 @@ Finally, return the result of the `filter()` call. You should return the result of the `filter()` call from your `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_return("filter(lambda expense: expense['category'] == category, expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index 0e2d0a651cc..cae351eee31 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -1,6 +1,6 @@ --- id: 65824561f3478e5371a33ae5 -title: Paso 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- @@ -19,6 +19,8 @@ You should define a function named `main()` without parameters. ({ test: () => assert(runPython(` import inspect inspect.isfunction(main) + sig = str(inspect.signature(main)) + sig == '()' `)) }) ``` @@ -26,12 +28,7 @@ You should define a function named `main()` without parameters. You should move the `expenses` list inside the `main()` function body. ```js -({ test: () => assert(runPython(` - import inspect - sig = str(inspect.signature(main)) - sig == '()' - `)) -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_body().is_equivalent("expenses = []")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 428006994a5..23b116aea50 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -1,6 +1,6 @@ --- id: 658246c28575d653d1f89b59 -title: Paso 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- @@ -18,30 +18,16 @@ Below the `expenses` list, create a `while` loop. Use `True` for the condition, # --hints-- -You should have `while True:` in your `main()` function. +You should create a `while` loop using `True` as the condition within your `main()` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+while\s+True\s*:/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_conditions()[0].is_equivalent("True")`)) }) ``` -You should have `print('\nExpense Tracker')` in your `while` loop. +You should print `'\nExpense Tracker'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')\\nExpense\s*Tracker\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print")[0].is_equivalent("print('\\\\nExpense Tracker')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index 879ee460edc..150c7896f1d 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -1,6 +1,6 @@ --- id: 65824872894f59546e3084e2 -title: Paso 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- @@ -9,21 +9,18 @@ dashedName: step-26 The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. -After the `print()` call, add another one to print the string `'1. Add an expense'`. +After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. # --hints-- -You should have `print('1. Add an expense')` in your `while` loop. +You should print `'1. Add an expense'` within your `while` loop after the existing `print()` call. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')1\.\sAdd\san\sexpense\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index ff7a6e82ce7..a557268c2db 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -1,6 +1,6 @@ --- id: 65824a1b16631c54fa524154 -title: Paso 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- @@ -11,17 +11,14 @@ Next, add another `print()` call and pass the string `'2. List all expenses'`. # --hints-- -You should have `print('2. List all expenses')` in your `while` loop. +You should print `'2. List all expenses'` in your `while` loop after the existing `print()` calls. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')2\.\sList\sall\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index 9e76f4394ec..662e4d59211 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -1,53 +1,44 @@ --- id: 65824c7b4e2da85597693dcf -title: Paso 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- # --description-- -Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. +Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. Keep adding the `print()` calls in order. # --hints-- You should have `print('3. Show total expenses')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')3\.\sShow\stotal\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('4. Filter expenses by category')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')4\.\sFilter\sexpenses\sby\scategory\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('5. Exit')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')5\.\sExit\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')", "print('5. Exit')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index 7098e9b0061..6c5f7e20351 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -1,6 +1,6 @@ --- id: 65824dfdb6815d563b2d3256 -title: Paso 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- @@ -13,17 +13,18 @@ Inside your `while` loop, call the `input()` function passing the string `'Enter # --hints-- -You should have `choice = input('Enter your choice: ')` in your `while` loop. +You should declare a variable named `choice` within your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+choice\s*=\s*input\s*\(\s*("|')Enter\syour\schoice:\s\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].has_variable("choice") +`)) }) +``` + +You should assign the result of the `input()` function, with the string `'Enter your choice: '` as its argument, to your `choice` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_variable("choice").is_equivalent("choice = input('Enter your choice: ')") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 068323fd01c..8f20aa4cf58 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -1,6 +1,6 @@ --- id: 6582507654b3ed5712341382 -title: Paso 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- @@ -15,30 +15,27 @@ Inside the `if` statement body, declare a variable `amount` and assign it an emp # --hints-- -You should have `if choice == '1':` in your `while` loop: +You should create an `if` statement that checks if `choice` is equal to `'1'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[0] +cond.is_equivalent("choice == '1'") or cond.is_equivalent("'1' == choice") +`)) }) ``` -You should have `amount = input()` in your `if` statement body: +You should declare a variable named `amount` in your `if` statement body. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("amount") +`)) }) +``` + +You should assign an empty `input()` call to your `amount` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input()") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index eb68e5a3e89..15f326cb257 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -1,6 +1,6 @@ --- id: 658252f6b1526d57b103d48a -title: Paso 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- @@ -13,17 +13,11 @@ Pass the string `'Enter amount: '` to your empty `input()` call, so you can stor # --hints-- -You should have `amount = input('Enter amount: ')` in your `if` statement. +You should pass `'Enter amount: '` to the `input()` call assigned to the `amount` variable. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*("|')Enter amount:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input('Enter amount: ')") +`)) }) ``` # --seed-- @@ -44,7 +38,6 @@ def total_expenses(expenses): def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) ---fcc-editable-region-- def main(): expenses = [] while True: @@ -56,7 +49,7 @@ def main(): print('5. Exit') choice = input('Enter your choice: ') - +--fcc-editable-region-- if choice == '1': amount = input() --fcc-editable-region-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index a566b8e6751..275d3f75aac 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -1,6 +1,6 @@ --- id: 658254db6e12485a48130f57 -title: Paso 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- @@ -13,17 +13,11 @@ Pass `input('Enter amount: ')` to the `float()` function. # --hints-- -You should have `amount = float(input('Enter amount: '))` in your `if` statement. +You should pass `input('Enter amount: ')` to the `float()` function in the assignment of `amount`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = float(input('Enter amount: '))") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index a9cb143d733..0249ed79c87 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -1,27 +1,26 @@ --- id: 658255d5f955175b270f251d -title: Paso 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- # --description-- -Inside your `if` statement, create a variable `category` to store the expense category. Assign it `input('Enter category: ')`. +Inside your `if` statement, create a variable named `category` to store the expense category. Assign it a call to `input()` and use the `'Enter category: '` as the argument. # --hints-- -You should have `category = input('Enter category: ')` in your `if` statement. +You should declare a variable named `category` in your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("category")`)) }) +``` + +You should assign `input('Enter category: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("category").is_equivalent("category = input('Enter category: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index c6a369b2a84..fd25bf41ee6 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -1,13 +1,13 @@ --- id: 6582575b8089f85b8b92d7c8 -title: Paso 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- # --description-- -After getting the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. +Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. @@ -17,17 +17,22 @@ After getting the `amount` and `category` using `input()`, call the `add_expense # --hints-- -You should have `add_expense(expenses, amount, category)` in your `if` statement. +You should call the `add_expense()` function within your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)\s*add_expense\s*\(\s*expenses\s*,\s*amount\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_calls("add_expense")) == 1`)) }) +``` + +You should pass three arguments to your `add_expense()` call: `expenses`, `amount`, and `category`. The order matters. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_call("add_expense(expenses, amount, category)")`)) }) +``` + +Your `add_expense()` call should come after the assignment of `amount` and `category`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].is_equivalent("amount = float(input('Enter amount: '))\\ncategory = input('Enter category: ')\\nadd_expense(expenses, amount, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index 38297fd4f6d..7ca152b9bde 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -1,42 +1,31 @@ --- id: 658258c0e5fbe85c14c060cf -title: Paso 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- # --description-- -To list all expenses, you can use an `elif` statement after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. +To list all expenses, you can use an `elif` clause after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. -Create an `elif` statement to check if the user's choice equals the string `2`. Inside the `elif` statement, print the string `'\nAll Expenses:'`. +Create an `elif` clause to check if the user's choice equals the string `'2'`. Inside the `elif` clause, print the string `'\nAll Expenses:'`. # --hints-- -You should have `elif choice == '2':` after your `if` statement. +You should create an `elif` clause that checks that `choice` is equal to `'2'` after your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[1] +cond.is_equivalent("choice == '2'") or cond.is_equivalent("'2' == choice") +`)) }) ``` -You should have `print('\nAll Expenses:')` inside your `elif` statement. +You should print `'\nAll Expenses:'` inside your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index a36bbfca7d7..0bc3402cf58 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -1,6 +1,6 @@ --- id: 65825a9520a0795c8afbef50 -title: Paso 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- @@ -11,17 +11,16 @@ After the `print()` call, call the `print_expenses` function to display all the # --hints-- -You should have `print_expenses(expenses)` in your `elif` statement. +You should call the `print_expenses()` function within your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)\s*print\s*_expenses\s*\(\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].find_calls("print_expenses")) == 1`)) }) +``` + +You should pass the `expenses` list as the argument to your `print_expenses()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print_expenses(expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index 08bf13ebc6e..6c1297bc068 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -1,6 +1,6 @@ --- id: 65825b758fe85a5cebabc8c5 -title: Paso 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- @@ -13,30 +13,19 @@ If it's true, it means the user wants to see the total expenses. So call `print( # --hints-- -You should have `elif choice == '3':` in your code. +You should create an `elif` clause that checks if `choice == '3'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert.match(function_body, /\s+elif\s+choice\s*==\s*("|')3\1\s*:/); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[2] +cond.is_equivalent("choice == '3'") or cond.is_equivalent("'3' == choice") +`)) }) ``` -You should have `print('\nTotal Expenses: ', total_expenses(expenses))` in your `elif` statement. +You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')3\1\s*:\s*print\s*\(\s*("|')\\nTotal\sExpenses:\s\2\s*,\s*total_expenses\s*\(\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[2].has_call("print('\\\\nTotal Expenses: ', total_expenses(expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index a38a584af50..676b0ec42f7 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -1,40 +1,35 @@ --- id: 65825cda2668995d5168e37c -title: Paso 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- # --description-- -Create another `elif` statement that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. +Create another `elif` clause that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. # --hints-- -You should have `elif choice == '4':` in your code. +You should create an `elif` clause that checks if `choice == '4'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[3] +cond.is_equivalent("choice == '4'") or cond.is_equivalent("'4' == choice") +`)) }) ``` -You should have `category = input('Enter category to filter: ')` in your new `elif` statement. +You should declared a variable named `category` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("category")`)) }) +``` + +You should assign `input('Enter category to filter: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("category").is_equivalent("category = input('Enter category to filter: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index 5d0f415c1cb..d354cb667cb 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -1,6 +1,6 @@ --- id: 65825e96b5db5f5dee6bf57c -title: Paso 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- @@ -11,17 +11,10 @@ After getting the category, print the following f-string `f'\nExpenses for {cate # --hints-- -You should print `f'\nExpenses for {category}:'` inside the `elif` statement. +You should print `f'\nExpenses for {category}:'` after the assignment of `category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index acfdea6c854..669de4ae215 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -1,6 +1,6 @@ --- id: 6582601b2987045e8e7da994 -title: Paso 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- @@ -11,17 +11,22 @@ After your `print()` call, you need to filter the expenses and print the filtere # --hints-- -You should have `expenses_from_category = filter_expenses_by_category(expenses, category)` in your `elif` statement. +You should declare a variable named `expenses_from_category` in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("expenses_from_category")`)) }) +``` + +You should call `filter_expenses_by_category()` passing `expenses` and `category` as the arguments and assign it to your `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("expenses_from_category").is_equivalent("expenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) +``` + +Your `expenses_from_category` variable should come after the `print()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index b1d1da892e6..4801aa6d338 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -1,27 +1,26 @@ --- id: 6582622cb6c11a5f4c5d79b4 -title: Paso 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- # --description-- -Still within the `elif` statement, pass `expenses_from_category` iterator to a `print_expenses` call. +Still within the `elif` clause, pass the `expenses_from_category` iterator to a `print_expenses` call. # --hints-- -You should have `print_expenses(expenses_from_category)` in your code. +You should call `print_expenses()` passing `expenses_from_category` as the argument in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)\s*print_expenses\s*\(\s*expenses_from_category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_call("print_expenses(expenses_from_category)")`)) }) +``` + +Your `print_expenses()` call should come after the `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)\\nprint_expenses(expenses_from_category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index 09954161b79..911a95cf962 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -1,42 +1,31 @@ --- id: 6582687859366a618424d84b -title: Paso 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- # --description-- -To provide a way to exit the program, use another `elif` statement to check if `choice` equals the string `'5'`. +To provide a way to exit the program, use another `elif` clause to check if `choice` equals the string `'5'`. -Inside the new `elif` statement, print the string `'Exiting the program.'` to show that the program is terminating its execution. +Inside the new `elif` clause, print the string `'Exiting the program.'` to show that the program is terminating its execution. # --hints-- -You should have `elif choice == '5':` in your code. +You should create an `elif` clause that checks if `choice == '5'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4] +cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice") +`)) }) ``` -You should print `'Exiting the program.'` in your new `elif` statement. +You should print `'Exiting the program.'` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:\s*print\s*\(\s*("|')Exiting\sthe\sprogram.\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 314c758b804..712c3072018 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -1,27 +1,20 @@ --- id: 65826a6e9d189a623141c726 -title: Paso 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- # --description-- -Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` statement. +Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` clause. # --hints-- -You should have a `break` statement inside your last `elif`. +You should have a `break` statement after the `print()` call inside your last `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+break/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].is_equivalent("print('Exiting the program.')\\nbreak")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index ebb514fdeae..f2fec123e71 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -1,13 +1,15 @@ --- id: 65826af5b226a5628aa154b1 -title: Paso 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- # --description-- -Finally, call your `main()` function, and try the expense tracker program. +Finally, call your `main()` function, and try the expense tracker program in the console. + +With that, the expense tracker project is complete! # --hints-- @@ -74,3 +76,58 @@ def main(): --fcc-editable-region-- ``` + +# --solutions-- + +```py +def add_expense(expenses, amount, category): + expenses.append({'amount': amount, 'category': category}) + +def print_expenses(expenses): + for expense in expenses: + print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') + +def total_expenses(expenses): + return sum(map(lambda expense: expense['amount'], expenses)) + +def filter_expenses_by_category(expenses, category): + return filter(lambda expense: expense['category'] == category, expenses) + + +def main(): + expenses = [] + while True: + print('\nExpense Tracker') + print('1. Add an expense') + print('2. List all expenses') + print('3. Show total expenses') + print('4. Filter expenses by category') + print('5. Exit') + + choice = input('Enter your choice: ') + + if choice == '1': + amount = float(input('Enter amount: ')) + category = input('Enter category: ') + add_expense(expenses, amount, category) + + elif choice == '2': + print('\nAll Expenses:') + print_expenses(expenses) + + elif choice == '3': + print('\nTotal Expenses: ', total_expenses(expenses)) + + elif choice == '4': + category = input('Enter category to filter: ') + print(f'\nExpenses for {category}:') + expenses_from_category = filter_expenses_by_category(expenses, category) + print_expenses(expenses_from_category) + + elif choice == '5': + print('Exiting the program.') + break + +main() + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index 225378e0c79..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: Paso 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index 047b62460e2..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: Paso 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index d92823b02a8..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: Paso 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index 5744d30ca18..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: Paso 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index 01b4474caa2..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: Paso 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index 730c5ee3cd6..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: Paso 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index 69de4e73ad8..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: Paso 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index 6f90b021d40..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: Paso 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index d77e97afbef..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: Paso 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index c97747081f0..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: Paso 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index 9e75857b257..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: Paso 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index 6cf170cd5b0..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: Paso 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 185c2e480ea..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: Paso 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 9cf8e8c985a..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: Paso 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index 66568ac34fb..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: Paso 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index d2107b5d91b..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: Paso 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index 90aaed031d1..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: Paso 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index ea0d3c7ff29..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: Paso 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index a2783db59ac..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: Paso 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index e02359fc1aa..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: Paso 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index 159e61ce6b3..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: Paso 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index b52a2219bf7..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: Paso 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index 27b2633334c..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: Paso 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Write another `if` statement that checks if the target key is less than the key of the current node. - -Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. - -# --hints-- - -You should write another `if` statement to check if `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -You should return `self._search(node.left, key)` from your new `if` block. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index 145cfb0d8f1..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: Paso 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index 5de8d90967e..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: Paso 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index 636f5cd8dad..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: Paso 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index d3c88fb5580..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: Paso 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index 7ee8ea7fc2b..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: Paso 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index fe3810d12df..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: Paso 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index f044e049bbb..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: Paso 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index d0d682c9de9..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: Paso 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index 7038a15b702..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: Paso 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index 2042cb0c3fb..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: Paso 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index 8bc5bd0b328..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: Paso 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Remember to use the `pass` keyword. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index 5654016a401..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: Paso 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index 64658f28826..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: Paso 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index b1fb8756256..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: Paso 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index e4d3c02a6e4..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: Paso 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index 8dd35332d28..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: Paso 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index 4b3cc5a9f87..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: Paso 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index c07ecbe3f40..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: Paso 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index bb96c5fcd21..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: Paso 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index e858f30ff45..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: Paso 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index dba417a1489..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: Paso 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index 3bd26b1689d..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: Paso 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index 6123e6e13c3..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: Paso 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index f96eeb9d666..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: Paso 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index 688a6721dee..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: Paso 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index 4695b8a6d59..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: Paso 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index de91c7a25ad..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: Paso 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index 8c2aa90a476..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: Paso 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index 43fd021c173..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: Paso 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index c8dc3c717c6..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: Paso 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index 100a3c3a9fb..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: Paso 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 2045fb7b7a6..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: Paso 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index a45f1a397ae..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: Paso 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index f8c75247da4..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: Paso 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index b54b97d4a43..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: Paso 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index c0fae602904..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: Paso 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index 17346810781..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: Paso 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index a239ce3ea44..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: Paso 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index 4eb8a841483..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: Formateador aritmético -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -Los estudiantes de primaria suelen colocar los problemas aritméticos en vertical para facilitar su resolución. Por ejemplo, "235 + 52" se convierte a: - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. La función debe tomar opcionalmente un segundo argumento. Cuando el segundo argumento se establezca como `True`, se deberán mostrar las respuestas. - -## Ejemplo - -Llamando a la función: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -Resultado: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -Llamando a la función: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -Resultado: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## Reglas - -La función devolverá la conversión correcta si los problemas suministrados están correctamente formateados, de lo contrario, **devolverá** una **cadena** que describe un error significativo para el usuario. - -- Situaciones que devolverán un error: - - Si se pasan **demasiados problemas** a la función. The limit is **five**, anything more will return: `'Error: Too many problems.'` - - Los únicos operadores que aceptará la función son **adición** y **sustracción**. Multiplicación y división devolverán un error. Otros operadores no mencionados en este punto no necesitarán ser probados. The error returned will be: `"Error: Operator must be '+' or '-'."` - - Cada número (operando) solo debe contener dígitos. Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - Cada operando (los números a cada lado del operador) tiene que tener un máximo de cuatro dígitos. Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- Si el usuario proporciona a la función los problemas con el formato correcto, la conversión a devolver por la función seguirá las siguientes reglas: - - Debe haber un solo espacio entre el operador y el operando más largo, el operador estará en la misma línea que el segundo operando, ambos operandos estarán en el mismo orden en que fueron pasados (el primero será el que aparezca arriba y el segundo estará debajo). - - Los números deben estar alineados a la derecha. - - Debe haber cuatro espacios entre cada problema. - - Debe haber guiones (-) al final de cada problema. Dichos guiones deben extenderse a lo largo de la longitud de cada problema por separado. (Véase el ejemplo más arriba.) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index 67a09aabf4e..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: Aplicación de presupuesto -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. Debería poder instanciar objetos en función de diferentes categorías presupuestarias como *comida*, *ropa* y *entretenimiento*. Cuando se crean objetos, se pasan en el nombre de la categoria. La clase debe tener como instancia una variable llamada `ledger` (esta es una lista). La clase debe contener también los siguientes metodos: - -- Un método `deposit` que acepta una cantidad y una descripción. If no description is given, it should default to an empty string. The method should append an object to the ledger list in the form of `{"amount": amount, "description": description}`. -- A `withdraw` method that is similar to the `deposit` method, but the amount passed in should be stored in the ledger as a negative number. If there are not enough funds, nothing should be added to the ledger. This method should return `True` if the withdrawal took place, and `False` otherwise. -- A `get_balance` method that returns the current balance of the budget category based on the deposits and withdrawals that have occurred. -- A `transfer` method that accepts an amount and another budget category as arguments. The method should add a withdrawal with the amount and the description "Transfer to [Destination Budget Category]". The method should then add a deposit to the other budget category with the amount and the description "Transfer from [Source Budget Category]". If there are not enough funds, nothing should be added to either ledgers. This method should return `True` if the transfer took place, and `False` otherwise. -- A `check_funds` method that accepts an amount as an argument. It returns `False` if the amount is greater than the balance of the budget category and returns `True` otherwise. This method should be used by both the `withdraw` method and `transfer` method. - -Cuando el objeto de presupuesto se imprime, debe mostrar: - -- A title line of 30 characters where the name of the category is centered in a line of `*` characters. -- A list of the items in the ledger. Each line should show the description and amount. The first 23 characters of the description should be displayed, then the amount. The amount should be right aligned, contain two decimal places, and display a maximum of 7 characters. -- A line displaying the category total. - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -Además de la clase `Category`, crear una función (fuera de la clase) llamada `create_spend_chart` que toma una lista de categorías como argumento. Debe devolver una cadena que es un gráfico de barras. - -El gráfico debe mostrar el porcentaje gastado en cada categoría pasado a la función. El porcentaje gastado debe calcularse únicamente con retiros y no con depósitos. Debajo del lado izquierdo del gráfico debe estar la etiqueta 0 - 100. Las "barras" en el gráfico de barras deben estar hechas del carácter "o". La altura de cada barra debe ser redondeada hacia abajo al 10 más cercano. La línea horizontal debajo de las barras debe ir dos espacios más allá de la barra final. Cada nombre de categoría debe ser escrito verticalmente debajo de la barra. Debería haber un título en la parte superior que diga "Porcentaje gastado por categoría". - -Esta función se probará con hasta cuatro categorías. - -Mire el output del ejemplo a continuación muy de cerca y asegúrese de que el espaciado coincida exactamente con el ejemplo. - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 7a09a3c9dce..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: Calculador de área de polígonos -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Clase Rectángulo - -Cuando se crea un objeto Rectangle, debe ser inicializado con los atributos `width` y `height`. La clase debe contener también los siguientes métodos: - -- `set_width` -- `set_height` -- `get_area`: Returns area (`width * height`) -- `get_perimeter`: Returns perimeter (`2 * width + 2 * height`) -- `get_diagonal`: Returns diagonal (`(width ** 2 + height ** 2) ** .5`) -- `get_picture`: Returns a string that represents the shape using lines of "\*". The number of lines should be equal to the height and the number of "\*" in each line should be equal to the width. There should be a new line (`\n`) at the end of each line. If the width or height is larger than 50, this should return the string: "Too big for picture.". -- `get_amount_inside`: Takes another shape (square or rectangle) as an argument. Returns the number of times the passed in shape could fit inside the shape (with no rotations). For instance, a rectangle with a width of 4 and a height of 8 could fit in two squares with sides of 4. - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Clase Square - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## Ejemplo de uso - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -Ese código debería retornar: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index d4929c9299a..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: Calculadora de probabilidad -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -Supongamos que hay un sombrero que contiene 5 bolas azules, 4 bolas rojas y 2 bolas verdes. ¿Cuál es la probabilidad de que un sorteo aleatorio de 4 bolas contenga al menos 1 bola roja y 2 bolas verdes? Mientras que sería posible calcular la probabilidad usando matemáticas avanzadas, una manera más fácil es escribir un programa para realizar un gran número de experimentos para estimar una probabilidad aproximada. - -Para este proyecto, usted escribirá un programa para determinar la probabilidad aproximada de dibujar ciertas bolas al azar de un sombrero. - -First, create a `Hat` class in `main.py`. La clase debe tomar un número variable de argumentos que especifiquen el número de bolas de cada color que están en el sombrero. Por ejemplo, un objeto de clase puede ser creado de cualquiera de estas maneras: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -Siempre se creará un sombrero con al menos una pelota. Los argumentos pasados al objeto sombrero al crear deben ser convertidos a una variable de instancia de `contents`. `contents` debe ser una lista de cadenas que contenga un elemento por cada bola del sombrero. Cada elemento de la lista debe ser un nombre de color que represente una sola bola de ese color. Por ejemplo, si su sombrero es `{"red": 2, "blue": 1}`, `contents` debería ser `["red", "red", "blue"]`. - -La clase `Hat` debe tener un método `draw` que acepte un argumento que indique el número de bolas a sacar del sombrero. Este método debe eliminar bolas al azar de `contents` y devolver esas bolas como una lista de cadenas. Las bolas no deben volver a introducirse en el sombrero durante el sorteo, de forma similar a un experimento de urna sin sustitución. Si el número de bolas a extraer supera la cantidad disponible, devuelve todas las bolas. - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). Esta función debe aceptar los siguientes argumentos: - -- `hat`: A hat object containing balls that should be copied inside the function. -- `expected_balls`: An object indicating the exact group of balls to attempt to draw from the hat for the experiment. For example, to determine the probability of drawing 2 blue balls and 1 red ball from the hat, set `expected_balls` to `{"blue":2, "red":1}`. -- `num_balls_drawn`: The number of balls to draw out of the hat in each experiment. -- `num_experiments`: The number of experiments to perform. (The more experiments performed, the more accurate the approximate probability will be.) - -La función `experiment` debe devolver una probabilidad. - -Por ejemplo, digamos que quieres determinar la probabilidad de obtener al menos 2 bolas rojas y 1 bola verde cuando dibujas 5 bolas de un sombrero que contiene 6 negras, 4 rojos y 3 verdes. Para hacer esto, realizarás `N` experimentos, contarás cuantas `M` veces obtienes al menos 2 bolas rojas y 1 bola verde, y estimarás la probabilidad como `M/N`. Cada experimento consiste en comenzar con un sombrero que contiene las bolas especificadas, dibujar una serie de bolas, y comprobar si conseguimos las bolas que estábamos tratando de dibujar. - -Así es como se llamaría la función de `experiment` basada en el ejemplo anterior con 2000 experimentos: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -Dado que esto se basa en tablas aleatorias, la probabilidad será ligeramente diferente cada vez que se ejecuta el código. - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index 16470ebc434..00000000000 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: Calculadora de tiempo -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -Escribe una función llamada `add_time` que tome dos parámetros requeridos y un parámetro opcional: - -- a start time in the 12-hour clock format (ending in AM or PM) -- a duration time that indicates the number of hours and minutes -- (optional) a starting day of the week, case insensitive - -La función debe agregar la duración a la hora de inicio y devolver el resultado. - -Si el resultado es el día siguiente, debería mostrar `(next day)` después de la hora. Si el resultado es más de un día después, debería mostrar `(n days later)` después del tiempo, donde "n" es el número de días más tarde. - -Si a la función se le da el parámetro opcional de día de la semana, entonces la salida debe mostrar el día de la semana del resultado. El día de la semana en la salida debe aparecer después de la hora y antes del número de días después. - -A continuación se muestran algunos ejemplos de casos diferentes que la función debe manejar. Preste atención a los espacios y la puntuación de los resultados. - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -No importes ninguna librería Python. Asume que las horas de inicio son horas válidas. Los minutos en el tiempo de duración serán un número entero inferior a 60, pero la hora puede ser cualquier número entero. - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index cc98d63b66b..473e395fe19 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -In this project, you will learn the basics of CSS(Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. Como has aprendido en los pasos anteriores del proyecto Cat Photo App, hay una estructura básica necesaria para comenzar a construir tu página web. Every HTML document should have a `DOCTYPE` declaration and `html` element. The `DOCTYPE` tells the browser which version of HTML the document is in. And the `html` element represents the root element which contains all other elements. diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md index 3b1be106cf4..f0c14baacbd 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md @@ -15,7 +15,7 @@ Here is an example of an `img` element with a `src` attribute pointing to the fr ``` -Inside the existing `img` element, add an `src` attribute with this URL: +Inside the existing `img` element, add a `src` attribute with this URL: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` @@ -27,7 +27,7 @@ Your code should have an `img` element. You may have removed the `img` element o assert(document.querySelector('img')); ``` -Your `img` element should have an `src` attribute. You have either omitted the attribute or have a typo. Make sure there is a space between the element name and the attribute name. +Your `img` element should have a `src` attribute. You have either omitted the attribute or have a typo. Make sure there is a space between the element name and the attribute name. ```js assert(document.querySelector('img').src); diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md index fd1999aba3c..2577a934b0c 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md @@ -21,7 +21,7 @@ Turn the image into a link by surrounding it with necessary element tags. Use `h # --hints-- -You should have an `img` element with an `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. You may have accidentally deleted it. +You should have an `img` element with a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. You may have accidentally deleted it. ```js assert( diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md index 9c761001073..a2a1b36fe95 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -Después de la lista desordenada - ul, añade una nueva imagen con un atributo `src` con el valor: +After the unordered list, add a new image with a `src` attribute value set to: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` @@ -40,13 +40,13 @@ assert( ); ``` -La nueva imagen no tiene un atributo `src`. Comprueba que hay un espacio después del nombre de la etiqueta de apertura y/o que hay espacios antes de todos los nombres de los atributos. +The new image does not have a `src` attribute. Comprueba que hay un espacio después del nombre de la etiqueta de apertura y/o que hay espacios antes de todos los nombres de los atributos. ```js assert($('section')[1].lastElementChild.hasAttribute('src')); ``` -La nueva imagen debe tener un atributo `src` con el valor `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Asegúrate de que el valor del atributo `src` esté entre comillas. +The new image should have a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Asegúrate de que el valor del atributo `src` esté entre comillas. ```js assert( diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index 6c9ba0193d6..e7456cc45d0 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -38,7 +38,7 @@ assert( ); ``` -La tercer imagen, debe tener un atributo `src` con el valor `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. +The third image should have a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index c7d3b7af864..376d0b7db73 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -Inside your `.cat-left-ear` element, create another `div` element with the class `cat-left-inner-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -You should not change the existing `div` element with the class `cat-left-ear`. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -You should have a `div` element inside your `.cat-left-ear` element. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -Your `div` element should have the class `cat-left-inner-ear`. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index 76be113a701..00000000000 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: Paso 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Inside your `.cat-right-ear` element, create another `div` element with the class `cat-right-inner-ear`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-right-ear`. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -You should have a `div` element inside your `.cat-right-ear` element. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index ad9ba5321d0..ee0caae40bc 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: Paso 23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index a71939f5497..ce53081aac5 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: Paso 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index dad6f5024a1..538628138c5 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: Paso 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index ce34e76f163..697d05881cf 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: Paso 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index 55b1f5ea152..b37aa9386b2 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: Paso 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index bfb8c7cbe5d..a15d11652bd 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: Paso 28 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index 0d94b97a23c..728e81fbcde 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: Paso 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ As you did for the left ear, rotate the right ear at 45 degrees. # --hints-- -You should set the `transform` property of your `.right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. +You should set the `transform` property of your `.cat-right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index 867d13ef5f7..bcd8818718c 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: Paso 30 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index 3b7b9f232c5..1c5bed7e7e1 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: Paso 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ The ears should always be placed above the part of the head it overlaps. You can `z-index` is a property you can use to define the order of overlapping HTML elements. Any element with a higher `z-index` will always be positioned over an element with a lower `z-index`. -To see `z-index` in action, set the `z-index`property of the left ear to `-1`. +To see `z-index` in action, set the `z-index` property of the left ear to `-1`. # --hints-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index 60d870d7af0..bb3dcf1a0ed 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: Paso 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index 9802d0a8f3f..3b3efbf0154 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,13 +1,13 @@ --- id: 646cfde6ac612e5d60391f50 -title: Paso 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- -Set the `z-index`property of the right ear to `1` so it always stays over the head. +Set the `z-index` property of the right ear to `1` so it always stays over the head. # --hints-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index c6a76e6fa99..946620f1758 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: Paso 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index 7864ae3e02f..963468c2e2d 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: Paso 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index 37b7e0572e0..14a5d7aeaf6 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: Paso 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index ef20690f8f1..c2f979d3992 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: Paso 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index 9674ab47e30..625e32f4b04 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: Paso 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index f16a41291aa..cd41b1ae9d5 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: Paso 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index 6db656035b4..f3a52b3a435 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: Paso 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- You will now start working on the cat's eyes. Like the ears, the eyes will have inner eyes. -Create a `div` element with the class `cat-eyes`. Inside the `cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. +Create a `div` element with the class `cat-eyes`. Inside the `.cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. # --hints-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index bad903fdf5f..60c5597b279 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -1,13 +1,13 @@ --- id: 646ddd3f9f97a0667b964bdb -title: Paso 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- -Inside the `.cat-left-eye` element, create another `div` element with the class `cat-left-inner-eye`. +Create two `div` elements, one with the class `cat-left-inner-eye` inside the `.cat-left-eye` element and another with the class `cat-right-inner-eye` inside the `.cat-right-eye` element. # --hints-- @@ -17,18 +17,36 @@ You should not change the existing `div` element with the class `cat-left-eye`. assert(document.querySelectorAll('div.cat-left-eye').length === 1); ``` -You should have a `div` element inside your `.cat-left-eye` element. +You should not change the existing `div` element with the class `.cat-right-eye`. + +```js +assert(document.querySelectorAll('div.cat-right-eye').length === 1); +``` + +You should have one `div` element inside your `.cat-left-eye` element. ```js assert(document.querySelectorAll('.cat-left-eye div').length === 1); ``` -Your `div` element should have the class `cat-left-inner-eye`. +You should have one `div` element inside your `.cat-right-eye` element. + +```js +assert(document.querySelectorAll('.cat-right-eye div').length === 1); +``` + +The new `div` element inside `.cat-left-eye` should have the class `cat-left-inner-eye`. ```js assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('cat-left-inner-eye')); ``` +The new `div` element inside `.cat-right-eye` should have the class `cat-right-inner-eye`. + +```js +assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); +``` + # --seed-- ## --seed-contents-- @@ -57,9 +75,11 @@ assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index a3f0b54e1c6..00000000000 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: Paso 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -Inside the `.cat-right-eye` element, create another `div` element with the class `cat-right-inner-eye`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-left-eye`. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -You should have a `div` element inside your `.cat-right-eye` element. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index dac0861ac65..3025f51126d 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: Paso 43 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index 3b4418b5b19..e3805aff89c 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: Paso 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Move the left eye into position with a `position` property of `absolute` a `top` of `54px`, and a `left` of `39px`. +Move the left eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `39px`. # --hints-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index 1376befc31f..eeb4f6d36ea 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: Paso 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index e7b07c72de1..aeb0f28cdfb 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: Paso 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index 907e2c644ef..07eb2b5743c 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: Paso 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index 08e864b175a..1653bbb1dc4 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: Paso 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index 885be883e87..6a3aa491180 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: Paso 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index 239aff36c2c..c236ed959a2 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: Paso 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index 9bc47392082..256aa6b6f3c 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: Paso 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index 9ddfb4f20ff..8cb28e7f912 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -1,8 +1,8 @@ --- id: 646dec359bef3b7811fba5a6 -title: Paso 52 +title: Step 50 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index da67bcea4da..3cfda69104a 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: Paso 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index a0f020c500b..fd22b0e9cc9 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: Paso 54 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index b8c56fc5756..b8f6c676584 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: Paso 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index 49c8989ba74..a22b558dcdb 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: Paso 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index c30108822fc..b4ad71b5cf1 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: Paso 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -13,13 +13,13 @@ Create a `div` element with the class `cat-mouth`. # --hints-- -You should create a `div` element. +You should create a `div` element. ```js assert(document.querySelectorAll('div').length === 13) ``` -Your `div` element should have the class `cat-mouth` +Your `div` element should have the class `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index e16a69f4a6a..3a67bcd4a44 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: Paso 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index f5cb06dd08d..37ce01315b7 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: Paso 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ Using a class selector, give your `.cat-mouth-line-left` element a `position` of # --hints-- -You should have a `cat-mouth-line-left` selector. +You should have a `.cat-mouth-line-left` selector. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index f39c024bf32..1afaafa8827 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: Paso 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- @@ -11,7 +11,7 @@ Using the `transform` property, rotate the left mouth line at `170` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(170deg)`. +Your `.cat-mouth-line-left` selector should have a `transform` property set to `rotate(170deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')?.transform === 'rotate(170deg)') diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index b3de252c35b..a60c0d8e84f 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: Paso 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index ad523e8cb6f..cac8db8cac6 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: Paso 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ Rotate the right mouth line at `165` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(165deg)`. +Your `.cat-mouth-line-right` selector should have a `transform` property set to `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index a083338d21b..aa23dfd3734 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: Paso 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index d7dadd79ec5..ca3d9da8be1 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -1,8 +1,8 @@ --- id: 646f0ef13604420a8744f7d4 -title: Paso 66 +title: Step 64 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index e4778b56779..27c8d1b7436 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: Paso 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index 4edfd2670ff..2deb1876a86 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: Paso 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index 74b7e30a7a5..77ba6057c0d 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: Paso 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index 5be1679575c..c01636a6571 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: Paso 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index 04de9546dad..be472910e42 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: Paso 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index c4f8e7252a3..d0c12963155 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: Paso 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index 4a033f7ef44..3d226cf8361 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: Paso 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index dd06ebbb3f3..131eb4c27a7 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: Paso 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index e77a4bd10a1..25b09b6b780 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: Paso 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index 3303e34431a..ae6fe0da1e7 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: Paso 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index c8e3abab3b3..51e0a54f9d3 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: Paso 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index e23d0de9d4e..3b1df51c87b 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: Paso 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Use a class selector to target the `cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. +Use a class selector to target the `.cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. # --hints-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index 15ef0006178..74373bf86a8 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: Paso 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index 5e8f751f520..dc4cc6ac10e 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: Paso 81 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index 0ae93f15ec6..b26c9df7044 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: Paso 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index 95856f00c1c..3f41b6b8186 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 You should now center the cat head. -Give the `.cat-head` element a position property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. +Give the `.cat-head` element a `position` property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. # --hints-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 996870319a7..133bb34ac00 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: Paso 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index 7bc10b55803..ecda03a6274 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: Paso 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index 3a787ac6809..a7088c04c4a 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: Paso 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 347d86b778c..e81c63a1711 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index ff7710a4704..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: Paso 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Finally, return the value of `median`. - -Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. However, it is important to remember that shorter code is not always better code. In this case, reducing the lines of code would make the code harder to read and understand, impacting future maintainability. - -# --hints-- - -Your `getMedian` function should return the value of `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index 908c65016ee..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: Paso 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index 097f9be1f36..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: Paso 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 55b6fe072d1..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: Paso 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index bb482ae3a20..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: Paso 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index a47de69e95f..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: Paso 28 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index 83487af518c..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: Paso 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index 046a4090b73..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: Paso 30 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index 5c6d1f73539..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: Paso 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index 90c5ef7fa7a..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: Paso 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -You should return `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index 913b4a7d452..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: Paso 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -You should have a constant called `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index 22b7cf73e09..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: Paso 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index 0374a0e51bb..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: Paso 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..1dd73ecc04b --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index b641b47949e..27bda9cb1e3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index 31b5aab1949..0eac43fb139 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index 872f15c114d..17f15765aa0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index da746753d28..2607be95cff 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index fcacc62099d..f191e66cf0f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md index 00ed710db32..c9a2b3d8323 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index 16a7d841782..99d8bf64f36 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index 365caaaafdd..e7aea874334 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index c9222ca37a2..fb235c822c5 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index fe761e7f5dd..9a45437b3b7 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index c055884da6c..a63101d600e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index 9edacf0701a..7e575e0125c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index a2080e53f5e..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: Paso 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -Variables can be assigned a value. When you do this while you declare it, this is called initialization. For example: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Initialize your `xp` variable to have a value of `0`, a number. - -# --hints-- - -`xp` should have a value of `0`. - -```js -assert.equal(xp, 0); -``` - -You should initialize the `xp` variable to `0`. Don't forget the semi-colon at the end of the line. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index 7ccd56b9984..8c73975833f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Create another variable called `currentWeapon` and set it to `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -You should use `let` to declare a variable called `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` You should use camelCase to name your variable. ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -Your `currentWeapon` variable should be set to `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` You should initialize your variable to `0`. ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index 6b71718528e..c09d8bbd79c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index 2a4b553972f..34d9459ba8c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index 825c0049aca..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: Paso 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -The variables you have assigned have all had values that are numbers. JavaScript has multiple different data types. The next one you will use is the string. Strings are used to store things like words or text. Strings are surrounded with double quotes, single quotes, or backticks. Here is an example of declaring a variable with a string: - -```js -let developer = "Naomi"; -``` - -Assign the `inventory` variable to have the value of `stick`. - -# --hints-- - -You should set `inventory` to the string `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -You should initialize your `inventory` variable with the string `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index 0ac364aee95..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: Paso 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -The player's inventory in your game will be able to hold multiple items. You will need to use a data type that can do this. An array can be used to hold multiple values. For example: - -```js -let order = ["first", "second", "third"]; -``` - -This is an array which holds three values. Notice how the values are separated by commas. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -Your `inventory` variable should be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should have three values. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -Your `inventory` variable should have the values in the correct order. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index 3ba5bc54ced..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: Paso 14 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -Your `inventory` variable should still be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should only have one value. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index d75e6619d33..e13e235a23c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index 63b8f3a8475..9caf7e829c1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index 491cbbb3fe3..01d81e0c3b4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index 88bcd739238..4e05e0cab79 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index b1c4d1d1b36..92af71dab77 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 32cd3d6a758..1a0976099be 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index 0d1dfed3a01..3797e2709d6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 902edafc6b3..8236d006fdf 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 2638ce9ae52..ecd7b41e551 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 46025e90ee2..4899b136971 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index a1779a579fa..af1ce60c93d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 7c76591109f..1e0c4282c4f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 2be712694cf..a5fcd2f1dec 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index cc90d211dd4..6040d1028d3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index b0dfcbb9d7b..2998105596f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index d1a2df0ea4b..1210d1b0e3b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 5b43ac85352..752b1671817 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index f31a581cc2d..1086d92ce39 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index 353d61ea5b0..9fa40be79c3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 1841ae43c76..25e82fda63c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 1a4ddfa7458..14eefc67a6e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index 1d51cab061e..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: Paso 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -Object properties are written as `key: value` pairs, where `key` is the name of the property (or the key), and `value` is the value that property holds. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"town square"`. - -# --hints-- - -Your first value of `locations` should be an object. - -```js -assert.isObject(locations[0]); -``` - -Your first value of `locations` should have a `name` property. - -```js -assert.isDefined(locations[0].name); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index 12891538908..6474b8db7c7 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index c318e051bc8..4ed6343fd96 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 4337bbb7817..442032d8950 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index 84e25aa3479..75a9b22ce50 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index b3d8e3a6ced..cb2e7bdaeaa 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 76419553abe..05f08bb6a19 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 6a2fd6dd18e..60ab0a2b874 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index ee22bd5db18..44fd2f7eb9c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index 42fa1b7156b..1dc5232b378 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 6df6d825b45..b54ee029164 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index 64dbdadcc64..5dbb6907d42 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index 69288ecb4e1..88610822650 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index 0bc2ea4f339..9eecaaee678 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index 7e8b7d6f71e..1848eab1431 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index cb1dab4a818..dda03f4aa4a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 87f4686de53..1b71205f170 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index b0c4f008224..eb77b88b3b0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 7f9be4c607c..10e1f6ce3fa 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 43844bfd6fa..2ea876ddf24 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index 407ef30337e..addf8147369 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index b32a4624174..83b34def3df 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index 03a101706ac..646a274c94a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index 79d9dcb9ce3..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: Paso 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -The `condition` string is just a placeholder. Change the `if` statement condition to check if `gold` is greater than or equal to `10`. - -Here is an `if` statement that checks if `num` is greater than or equal to `5`: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -Your `if` statement should check if `gold` is greater than or equal to `10`. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -Your `buyHealth` function should update `health` and `gold` if `gold` is greater than or equal to `10`. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -Your `buyHealth` function should not update `health` and `gold` if `gold` is less than `10`. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index 23684174766..c2df7ba8924 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index a5108647216..e35ee493c6b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index df552626f1b..adad93a5c6b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index 9a18056f74e..470f9065bec 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index 57cf505e52b..bb8a07042e3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index a210376fd75..b3592e5aa14 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index 641048de2e1..0f65c77df04 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -The value of the `currentWeapon` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -In the `buyWeapon` function, use compound assignment to add `1` to `currentWeapon` - the user is buying the next weapon in the `weapons` array. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -You should use compound assignment to add one to `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -Your `buyWeapon` function should increase `currentWeapon` by `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Your code should be in your `if` statement. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index a4c118f6f3d..1bd4b3f4533 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Change your `currentWeapon` assignment to use the increment operator. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -You should use the increment operator to increase `currentWeapon` by `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -You should not use compound assignment to increase `currentWeapon` by `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 0288af76ebf..da2f57a2940 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 0509fd0209f..bd061db00af 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 0ce8646d7ba..d72680595d4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeapon` within the brackets. +Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeaponIndex` within the brackets. When you use a variable in bracket notation, you are accessing the property or index by the *value* of that variable. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index eb78febdb46..6f6157eec95 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` is an object. Use dot notation to get the `name` property of that object. +`weapons[currentWeaponIndex]` is an object. Use dot notation to get the `name` property of that object. # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 065a312d032..b4717bed9e8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 33fcfc81e1d..1d2fa00beec 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ Your `buyWeapon` function should add the value of `newWeapon` to the `inventory` ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index c2c10d03e5b..5443169577e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index 049fa2470e9..baf137a8530 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index 0843051f507..47211f51cf4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index 35bd5b0666b..cd43584c827 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeapon` is less than `3` - the index of the last weapon. +Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -You should have a new `if` statement that checks if `currentWeapon` is less than `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` Your existing `if` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); Your existing `else` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index 71fd3d9c5b4..663cb53c8c4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Arrays have a `length` property that returns the number of items in the array. You may want to add new values to the `weapons` array in the future. -Change your `if` condition to check if `currentWeapon` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ You should use the `length` property on the `weapons` array. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -Your `if` statement should check if `currentWeapon` is less than `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index 00bcc81def5..4632b674d6f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -The `currentWeapon` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. Change the `if` condition to check `weapons.length - 1`, instead of `weapons.length`. @@ -23,10 +23,10 @@ You should update the condition to subtract `1` from `weapons.length`. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -Your condition should check if `currentWeapon` is less than `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 88e988b4342..cc1c4b8273d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 7beafd0a495..041472b56b8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 194d6d2130b..cc73efed14f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index a23450f5ed4..763f646b62b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 0d176b81c7f..975c6446f0f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index 0032e30ee54..93b5c9babb8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Notice that you already have a `currentWeapon` variable elsewhere in your code. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 4e7f9117a26..59e803ef18d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index 0ce7ffb6314..d53accb8e69 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` Your `text.innerText` should update to the proper string. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index 44e4ab1926b..65721659631 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index f5bbad9e0d1..682a5fe76bd 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index b92571d3d30..abd86e35b27 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 7a5458fd606..1c6cd769027 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index a1daed21eef..3b555e0f9f9 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index 331e94c38eb..39a1ab9c522 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 2c8be2f2d00..9d1aebd3d08 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index c26c417f4d0..2312c7efe25 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 507f9e51e21..96029139026 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index eb32394270b..56b799d223d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index 19dc4e0d586..ec5f6ee5c8d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 437ca16fc9b..2b27d636b1f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index d370d9899e7..c9db1c10266 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index c6f89860b85..bb8a96a906d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeapon].name`. +You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index c66f059b602..040babab4ec 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index d59c6a933e7..6225b405f50 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Using these, you can generate a random number within a range. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ You should use the same `monsterHealth` line you already wrote. assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -You should add to the `weapons[currentWeapon].power` value. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` You should use `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? You should add the result of `Math.floor(Math.random() * xp) + 1` to the result of `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index d68134d2350..274040289a1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index ffd5e28f3ee..079c222ff3d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index f7cc5a0f46a..c00883f6cc6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 3be7b4a8355..d7ef1c1dac8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index d5af7299e44..ac255663e19 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index 81d4dd2883d..0aede6aa27a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index 110f82cbd5b..22817a6e62f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 35a05b443aa..be06a139e03 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 024b4959d65..5766abd424a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index 3bca3e5c383..f6b904e02c3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index c1f3457b7c5..405a97fa6e2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 3ad57b17036..5d78cc4d0b5 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 641e365bf76..9286fc33eb0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 5ff1b213382..22c13f88c2b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeapon` to `0`, and set `inventory` to an array with the string `stick`. +At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Also update the `innerText` properties of `goldText`, `healthText`, and `xpText` to their current values. @@ -39,10 +39,10 @@ Your `restart` function should set `gold` to `50`. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -Your `restart` function should set `currentWeapon` to `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 3f0337d819c..a132b990d3c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index 4e2d63fa3e4..bf52667c43c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index 5bb111d0b29..e318c25ce60 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 737e5a1a247..41faa44d5ef 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 1beebfe0ab7..b9f78edb5c3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index e714aedc940..7b96177a6a6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index b4f1daf80a0..f945040ccab 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index 9ac019e464d..7194de8da02 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index 648a7562e7c..ab5905353b1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 1b7a89f353f..632abe728dd 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index 4c7363d5341..7da1800af5e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ Move your `monsterHealth` assignment into your `if` block. # --hints-- -You should move your `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` into your `if` block. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index a1775d7543b..e6ce6f4616a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct You should add an `else` block after your `if (isMonsterHit())` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index 1b9384de685..89b70f7c1b3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 9219b8da936..3b985e1dbd3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 4bca7930754..fcb4a8b153e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 308f53fd795..9e1a123a719 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 0aecde7e233..28d47dffdff 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Decrement the value of `currentWeapon` in your `if` statement, after you update the text. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ You should use the decrement operator. assert.match(attack.toString(), /--/); ``` -You should decrement `currentWeapon` in your `if` statement. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index fb88f652092..aa926a8b8d8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index 84e6671d449..0ab02c6d783 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index f2c2ae3c598..705c25660dd 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index 4123ece8378..c1d224bb2dc 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index 9cf97ef1f86..8e5ad353975 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index ae21c052d6e..7f603982c95 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index 2c5359f0283..9629947e6cb 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index a674632b49b..a8fa573a795 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index 1ef1456647a..af13af000e3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 1eb6aa4c1f1..ee1f17b327b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index 9da6c0e84f1..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -`for` loops are declared with three expressions separated by semicolons. `for (a; b; c)`, where `a` is the initialization expression, `b` is the condition, and `c` is the final expression. - -The initialization expression is executed only once, before the loop starts, and is often used to define and set up the loop variable. Think of it like declaring a counter to use in your loop. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -You should change your initialization in the `for` loop to be `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index 346adeb6fa0..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -The second statement in a `for` loop, the condition statement, is evaluated at the beginning of every loop iteration. The loop will continue as long as the condition evaluates to be true. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -You should update your condition statement to be `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index 1dd28e8ad74..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -The last statement in a `for` loop, the final expression, is executed at the end of each loop iteration. - -Since we changed the initialization statement to use `i` instead of `x`, change `x++` to `i++`. This will increment the initializer `i` by 1 after each loop. - -# --hints-- - -You should change your final expression to `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index 71875c1a0ea..6045c2ab02f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 5d2de454974..5c01ee608a2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index 659e9a1e4b1..51a72303ff2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index b0868a55bf0..3b46e0900dc 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 650fe59ddd1..d5cf53b8ad6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index ebf70ca3d06..4f1db2ae242 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index db3e2b0cc04..e584e963759 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index 4210e30d01c..727d1e77172 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index ffceba8152a..9c5b2d649d9 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index c38becdee8c..52cf362e9fa 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index 07e0bc2a467..1760558ebf2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index 58053d1b5f9..38a59051ce9 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index d02a93e386b..acff0654ac7 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index eb8d9eb9e49..22f76f9d027 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index f356a81510e..23ba2134b5b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -You should declare a `cleanInputString` variable. -```js -assert.isDefined(cleanInputString); -``` -Your `cleanInputString` variable should be a function. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index 40d588a5e7d..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: Paso 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -You need to split your `str` into individual characters. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -Your `cleanInputString` function should declare a `strArray` variable. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Your `strArray` variable should be assigned the value of `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index c0edc3eb4ce..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: Paso 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Declare a `cleanStrArray` variable and assign it an empty array. You will use this to store your valid number characters. - -# --hints-- - -Your `cleanInputString` should declare a variable called `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Your `cleanStrArray` variable should be assigned an empty array. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index a20fc8b9b9c..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: Paso 21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Use a `for` loop to iterate through each character in your `strArray` array. - -# --hints-- - -Your `cleanInputString` function should have a `for` loop. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Your `for` loop should initialize a variable called `i` to `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Your `for` loop should have a condition that checks if `i` is less than the length of `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Your `for` loop should increment `i` by `1` each time it runs. Use the increment operator for this. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index fd696869404..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: Paso 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). If it is not, `push` it to the `cleanStrArray`. - -# --hints-- - -Your `for` loop should have an `if` statement. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Your `for` loop should use `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Your `for` loop should `push` `strArray[i]` to `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 4ecae222222..0f955c403d9 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Start by creating a function called `isInvalidInput` – it should take a single # --hints-- -You should declare an `isInvalidInput` variable. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` should be a function. ```js diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index 5fe11ad76a0..9a7c21d3716 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Your next step is to allow users to add entries to the calorie counter. Declare # --hints-- -You should declare an `addEntry` variable. - -```js -assert.isDefined(addEntry); -``` - -Your `addEntry` variable should be a function. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index d90798583b0..ac72cff5f7a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; Variable naming follows specific rules: names can include letters, numbers, dollar signs, and underscores, but cannot contain spaces and must not begin with a number. -Declare a `character` variable in your code. +Use the `let` keyword to declare a variable called `character`. _Note_: It is common practice to end statements in JavaScript with a semicolon. `;` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index 434d1afe46d..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: Paso 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index ef79c96a9c4..00000000000 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: Paso 15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -To check if the `Object.freeze()` method is working, you can try to assign a new value to one of the existing properties. - -Below the `Object.freeze(myFavoriteFootballTeam)`, assign the `USA` string to `myFavoriteFootballTeam.team`. Below that, add a `console.log` for `myFavoriteFootballTeam.team`. - -When you open up the console, you will see an `Uncaught TypeError` message. This error appears because the `Object.freeze()` method does not allow you to overwrite that value. - -# --hints-- - -You should assign the `USA` string to `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -You should add a `console.log` for `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index 9dfa794cc91..9d429dc5ddb 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index 817c3c49c81..4846a0a7260 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 5f737ece31a..8bdc87a3c1d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index e443f3f5406..fc6b5dd4047 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index 1d7648b2e73..53b255e9eb6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index 5e3670212cb..95f661b3972 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index db52b094fb2..e63b7e3f529 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index 184fb2ee713..591a195ca0a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index 1e247905952..0e317c65ce1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index 23225784ca4..11aaf8dafe8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index 26ddb990e76..6dd27e2efcb 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index d5ecbfeeb82..b1f12a67749 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index eb826dfb4d2..cccf8b2bb41 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index 7c9cdcf5ad3..2da3b681144 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index 1495309a5e7..b57e02525a1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index f634d94a9de..ab22fabfff8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index 42cf2d92510..b9ae4dd2a66 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index 8daa1a44f9c..00dd166f442 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index c3728b94f99..29e92fbf17f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index bfb11e280f2..9531b3ec18b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index 3f52263c111..c8c82b734a1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index 1bcdf11b4cc..e2a301e3a02 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index 5d10453da18..58a7e3040f4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index 7f39feb1fde..cd7011bc2d8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index 260afd1e87c..2813594073b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index 7bdc9fa731a..abc9a76f1ac 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index 00ebf053e10..f20373ecbbd 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 0e744e78db4..5b42cec6aca 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index 9959930415a..61ef5404c44 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index 86066b86c88..0e155be8059 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index ea245bd063f..51a0ec9298b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index fe17d14b768..a31a1e88c6b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index 5d0fe194b76..8daa15cd3a0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index b6c766b4a49..73406b77b3d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index 25d3f029a1c..b152552b231 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index 41096005050..603ff7374b2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index fadaf24b642..c04d121edec 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index 33a14ed4beb..34111c97516 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index 408ef9313ea..3504ef6309d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index 6ee1fbaec07..8c3aa5956d0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index b7dee6fd685..d0a60875462 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index 25ed4020acb..37966082e4c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index 5e2d3a25e8b..88ea654f714 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index 0a236095304..9d394d6ba2f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 74976c3d579..884b0464b2e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index b9f85d6b095..9d43aed7f72 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index f8c64fb9922..6f5b099e372 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index ffbbf1fec52..776cd4b8108 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index 58cb6c9e3cd..e9789f4066f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index 0da30ea719a..eec5c763b13 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index 3d8c0d2786f..b634abeafa1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 12a1355d7d6..10707337bc0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index b88586b6ce0..41f091fb33e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 44104f493fd..5f6b600972b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index 7a04d308ba3..eb8f9605b20 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index d9c0af63a0b..8730117c810 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index 8bec5af93a2..a0ff2dee75e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index 5217ca7c937..ea643c394b4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index 6ac0f51b7df..cbb105a9e84 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index f39ecc6a8f4..ceac25c6c1e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index 163b3987ba2..db6fbd759a9 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index e371eb6bac6..2faefc833e8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index 9e18e6502fa..18e77649909 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index 52651010790..a4053d04910 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index e4882031dcb..94ecf41f218 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index cea9df90838..60428f2feed 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index ad551d81a2a..ada32072373 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index b479e95e667..ab927daf875 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index 579463c7386..3a99396de33 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index 1bde1ab8589..8214e6e23a2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index 744e4fb64e9..fed377ba233 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index bfe8730ee9d..7a651cc91cd 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 097d02c0994..91a4362689d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index 7f8c5d9cdeb..ce7b9921e1a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index 045a454fc0b..c59b17d8489 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index c1bdb6a3231..98691ad3543 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index 0e0a3689db9..a556df3abc7 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index 7926659f7f0..d979190981d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index 9ff7a490be7..861ea61b09e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index e2401eaa0b4..29d1670abe2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 44ba5f5ad4e..0f1b9a9c3d4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index 263baafca35..027ad4017a6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index 7161c5e860e..3ebc9d08cc0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index 152308dd0d7..9005cd88e47 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index 35248da67d0..5b9d42461e1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index 5d85a30be18..c17a5aa610b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index 41e77fb84d7..c8ad61b92ec 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index 40f3686027a..b1b771e6b50 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index 35c0b3b3102..a62fb78adaa 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 34446675560..f9fb61d3f2e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index 163b9b05b44..bb42b82601e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index 33f3910664d..bc57a5de394 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index 5572d63a00c..6af2e8583fb 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index 658071ed0f2..57b651514bb 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index a564b89ff20..b5465814892 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index 68fe5508412..c989afc2ab7 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index 74670390655..d8e5bed5743 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index 52a1dba85a8..4046b1a40ee 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index c92698c68f7..0ec43b0d296 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index f3c0918d31a..84d5add790d 100644 --- a/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Working with Text Question H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index 05765087c87..75fc123e8a2 100644 --- a/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Working with Text Question I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index e496b6b12a8..35c0cd937ec 100644 --- a/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Working with Text Question J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/espanol/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/espanol/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 92c630f9429..acf6ed00556 100644 --- a/curriculum/challenges/espanol/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/espanol/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 59697cee95a..478bdf8a673 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialogue 2: Tom Meets the Coworker Next To Him" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index f4ee0c9f7ce..0f6ad5eeeee 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Task 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index b33fb9aefa7..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 0101899f671..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## Frases - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## Palabra correcta - -`didn't` - -### --retroalimentación-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --retroalimentación-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index 7abf2918c4e..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index 24ae82e2f0c..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 316d2caf620..54f2fe18911 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 546ce26b9f2..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..7f272358313 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index 917bb72eca4..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 44b786943e3..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index fc6ac19b94c..6dceac5c3fb 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 196941d7e7d..156e473d52a 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index 5b253743443..2cd38ea1dea 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 03706a3c7e5..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index 72c1211c6e5..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index 645ee1ca235..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..c2978af6438 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index 2a1d901e366..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index edb5ed3a790..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..e5571f08f36 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..ea4e9a66215 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index d0129485822..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 06eed04beec..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index f152f78c79d..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index a9e8912d7df..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index 216c7aa38b6..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..6947fe048c2 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..e05448d9d48 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Task 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..aaa7a3890de 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Task 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..ea5416f070f 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Task 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..91066451909 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Task 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..109deef84e4 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Task 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..5bd0b159b4a 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Task 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..527d24103b0 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Task 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..b536269cb5a 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Task 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..9ea5dfd2ec2 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Task 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..0031c5026bb 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Task 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..dc9412ebb8f 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Task 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..53772f4f629 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Task 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..564de6f07b1 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Task 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1f031ee3f1e 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Task 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..f2d572900d8 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Task 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..4b818dc4a70 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Task 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..707eb0d122d 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Task 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..e117e9317d8 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Task 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..5b4096f746c 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Task 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..7221646546e 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Task 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..03428f51432 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Task 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..287f03ddd1e 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Task 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..1538fbae725 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Task 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..331abe3703f 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Task 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..93862c576dc 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Task 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..5afcfa7c916 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Task 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..7937868764f 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Task 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..bf7fa023589 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Task 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..304a2c583d8 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Task 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..98e230933ca 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Task 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..054af388b35 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Task 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..3a5f7c3594b 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Task 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ff7dad74588 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..d41cb232f9c 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Task 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..a29433a1b9a 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Task 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..d29b5313cd6 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Task 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..aa9a85fb288 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Task 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..7eed555b4e1 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Task 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..fd66f011103 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Task 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..198f4c0b6e9 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Task 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..db488ae0a03 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Task 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..fcebb2960ea 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Task 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..b3152c55726 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Task 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..921551d84e0 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Task 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..778df3691d7 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Task 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..cf208824a34 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Task 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..7d49d97efb2 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Task 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..924dc459772 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..32c51e43652 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Task 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..bb730a97243 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Task 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..b96607f08e3 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Task 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..1649db7e147 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Task 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..4d1c3371618 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Task 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..7161861383e 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Task 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..000ef53d2ef 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Task 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..f9abd0109a4 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Task 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..b13756997fc 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Task 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..2de180a58c7 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Task 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..0866794a4e5 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Task 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..610f7a26d7a 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Task 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..185183a0410 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Task 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index 59311d4a1c7..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index a27b408aab9..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index 91a26abc89b..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 1bc7b20d062..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index a2e1c9865ea..00000000000 --- a/curriculum/challenges/espanol/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --tarea-- - -Watch the video diff --git a/curriculum/challenges/german/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/german/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index c5ae3da169e..e844a086300 100644 --- a/curriculum/challenges/german/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/german/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: Streiche Text mit dem s-Tag durch challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/german/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/german/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index 7068e5ef69f..78fc6ae59f3 100644 --- a/curriculum/challenges/german/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/german/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: Verbessere die Kompatibilität mit Browser-Fallbacks challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/german/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/german/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index 9dd7dc2d894..1f53ccb60e0 100644 --- a/curriculum/challenges/german/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/german/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: Den Wert einer Variablen einer anderen zuweisen challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index d3652d10b8c..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: Schritt 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index 148db1ae4de..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: Schritt 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index 67086008a6d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: Schritt 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index 5cf507ef397..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: Schritt 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index 28e5b0fd246..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: Schritt 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index 7b9e81060c3..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: Schritt 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index 3b2564da9fc..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: Schritt 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index d0fd21e62c1..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: Schritt 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index 57f70f825a7..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: Schritt 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index 87a22976c40..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: Schritt 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index 0909d3d2270..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: Schitt 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index 137a7408cb4..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: Schritt 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index faa5b8003cb..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: Schritt 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index b026e596131..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: Schritt 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index ae33be6a5ea..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: Schritt 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index 197fe39401c..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: Schritt 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index 26d5bbff27a..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: Schritt 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index a31ee46fbae..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: Schritt 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index 961a3b55180..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: Schritt 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index f0ae8eabf6d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: Schritt 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index 2a160098992..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: Schritt 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index 842fb7c5253..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: Schritt 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index 21ecf3e4e13..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: Schritt 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index 7e7347b1f9c..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: Schritt 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index 64f8e82183f..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: Schritt 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 960dfceced4..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index 60bc5643d3f..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: Schritt 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index 1762c0882a8..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: Schritt 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index 66125d4cc4e..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: Schritt 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index e21b04fae57..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: Schritt 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index 5ff87ba5094..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: Schritt 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index 2cd73b9ab5a..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: Schritt 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index 23d07c41e9d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: Schritt 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index 95dfe3476f4..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: Schritt 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index 7c1a1bc5663..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: Schritt 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index 5e888de0a60..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: Schritt 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index 8e646bb31ad..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: Schritt 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index a9385e6abf2..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: Schritt 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 72e0538a66d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: Schritt 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index 20a9b2c6d1c..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: Schritt 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index b0bc9ce84b0..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: Schritt 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index d64d3ec80ed..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: Schritt 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index 7369a71e1f2..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: Schritt 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index a064c7cffdb..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: Schritt 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index e30ace5f3c3..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: Schritt 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index 00049f540f5..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: Schritt 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index e2cd55a97f7..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: Schritt 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index 08722fd3657..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: Schritt 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index 21dccb59cc3..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: Schritt 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index d541a97c77b..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: Schritt 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index cc14b1cca72..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: Schritt 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 5d591eaafcf..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: Schritt 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index 496c9e2acfe..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: Schritt 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index f4379d57055..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: Schritt 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index 65f2f5b848d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: Schritt 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index 2aa133d12e7..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: Schritt 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index 92026e16d2b..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: Schritt 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index 396ad80de75..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: Schritt 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index 7dc05121068..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: Schritt 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 622c5b904f8..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: Schritt 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index 39c47c8310d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: Schritt 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index 225d2d792cf..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: Schritt 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index 604b8d8a9a6..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: Schritt 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index f5e4c97633d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: Schritt 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index ad1c1da397f..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: Schritt 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index 756c7fd1442..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: Schritt 66 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index 902da90ba60..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: Schritt 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index b0c4d182b81..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: Schritt 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index 5a753c45139..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: Schritt 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index 39714a69a5f..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: Schritt 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index 36d4175115e..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: Schritt 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index 148d26e331b..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: Schritt 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index 12ec58c9b1d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: Schritt 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index 937d3bdd45a..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: Step 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index 21c18ca0b3d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: Schritt 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index 2627e83dd8d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: Schritt 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index 3fb937f1154..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: Schritt 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index 8937fca71b3..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: Schritt 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index 83c97c32004..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: Schritt 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index 64391fb9c39..654f34de15b 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -13,7 +13,7 @@ Start by defining a function named `add_expense` that takes three parameters: `e # --hints-- -You should declare a function named `add_expense`. +You should use the `def` keyword to declare a function named `add_expense`. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index 9312ecf7f69..49867594bc4 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -7,13 +7,13 @@ dashedName: step-2 # --description-- -A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets `[]`, with each item separated from the following one by a comma. +A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets (`[]`), with each item separated from the following one by a comma. ```py numbers = [1, 2, 3, 4] ``` -Create an empty list named `expenses`. You will use it to store each of your expenses. +Use a pair of square brackets to create an empty list named `expenses`. You will use it to store each of your expenses. # --hints-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index 82f8fb75dba..f46b7da744b 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -7,21 +7,29 @@ dashedName: step-3 # --description-- -The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you can use the `.append()` list method: +The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you'll use the `.append()` list method: ```py my_list = [2, 4, 7] my_list.append(3) ``` -In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. +In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. + +Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. # --hints-- You should have `expenses.append()` in your function. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\)/m) +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append()")`)) }) +``` + +You should not have `pass` in your function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("add_expense").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index 8270d4d2744..e7c6f538924 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -7,7 +7,7 @@ dashedName: step-4 # --description-- -A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces `{}` and they contain key-value pairs separated by commas. Each key is followed by a colon `:` and the value: +A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces (`{}`) and they contain key-value pairs separated by commas. Each key is followed by a colon (`:`) and the value: ```py {'amount': 50.0, 'category': 'Food'} @@ -19,10 +19,20 @@ Create a dictionary with a key `'amount'` and value of the `amount` parameter an # --hints-- -You should have `expenses.append({'amount': amount})` in your function. +You should pass a dictionary as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) +`)) }) +``` + +You should pass `{'amount': amount}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index aa237f67ad8..873e5c8cf84 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -11,10 +11,20 @@ Add another key-value pair to the dictionary you are appending to the `expense` # --hints-- -You should have `expenses.append({'amount': amount, 'category': category})` in your code. +You should add a second key-value pair to the dictionary you are passing as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*,\s*("|')category\2\s*:\s*category\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) and len(node[0].tree.keys) == 2 +`)) }) +``` + +You should pass `{'amount': amount, 'category': category}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount, 'category': category})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index 9b8c77f5f70..2fa22145eaa 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -Start by defining a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. +Next, define a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. Fill the body of your new function with a `pass` statement. diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index 8a17ed7ae0d..28008a6cc16 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -11,10 +11,22 @@ Inside the `print_expenses` function, create a `for` loop that iterates over eac # --hints-- -You should have `for expense in expenses:` in your `print_expenses` function. Remember to use `pass` within the loop body. +You should create a `for` loop that iterates over `expenses` in your `print_expenses` function. Remember to use `pass` within the loop body. ```js -({ test: () => assert.match(code, /for\s+expense\s+in\s+expenses\s*:/ ) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_iter().is_equivalent("expenses")`)) }) +``` + +You should use `expense` as the loop variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_vars().is_equivalent("expense")`)) }) +``` + +You should have `pass` only inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index 8dcf69a6113..27a3995e7a3 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -9,14 +9,20 @@ dashedName: step-8 Next, you are going to display the details for each expense. -Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. Leave the placeholders empty for now. +Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. # --hints-- -You should have `print(f'Amount: {expense}, Category: {expense}')` in your `for` loop. +You should print `f'Amount: {expense}, Category: {expense}'` in your `for` loop. ```js -({ test: () => assert.match(code, /^\s+print\s*\(\s*f("|')Amount: \{\s*expense\s*\}, Category: \{\s*expense\s*\}\1\s*\)/m) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].has_call("print(f'Amount: {expense}, Category: {expense}')")`)) }) +``` + +You should not have `pass` inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_bodies()[0].has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index 464947a157e..20b794135b0 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -7,7 +7,12 @@ dashedName: step-9 # --description-- -You can access values in a dictionary through its keys. You need to use the bracket notation and include the key between the square brackets: +In Python, an important thing to know is that the same type of quote used to define a string cannot be used inside it. For example, the string `'I'm a string!'` is not valid. To use the single quote inside that string you should either: + +- Escape the quote by prepending a backlash to it: `'I\'m a string!'` +- Or use double quotes to define the string: `"I'm a string!"` (preferred). + +You can access values in a dictionary through its keys. You need to use bracket notation and include the key between the square brackets: ```py my_dict = {'amount': 50.0, 'category': 'Food'} diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index 9287eab8979..617cc332e39 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -7,7 +7,9 @@ dashedName: step-10 # --description-- -You will need a function to calculate the total amount of expenses. Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. +You will need a function to calculate the total amount of expenses. + +Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. # --hints-- @@ -21,7 +23,7 @@ You should define a function named `total_expenses`. }) ``` -Your`total_expenses` function should take a single `expenses` parameter. +Your `total_expenses` function should take a single `expenses` parameter. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index 500990670ee..5348aeb8f0e 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -13,14 +13,22 @@ Lambda functions are brief, anonymous functions in Python, ideal for simple, one lambda x: expr ``` -In the example above, `x` is a parameter to be used in the expression `expr`. Create a `test` variable and assign it a lambda function that takes an `x` parameter and returns `x * 2`. +In the example above, `x` represents a parameter to be used in the expression `expr`, and it acts just like any parameter in a traditional function. `expr` is the expression that gets evaluated and returned when the lambda function is called. + +Create a variable named `test` and assign it a lambda function that takes an `x` parameter and returns `x * 2`. # --hints-- -You should have `test = lambda x: x * 2` in your code. +You should declare a variable named `test`. ```js -({ test: () => assert.match(code,/^test\s*=\s*lambda\s+x\s*:\s*x\s*\*\s*2/m)}) +({ test: () => assert(runPython(`_Node(_code).has_variable("test")`))}) +``` + +You should assign `lambda x: x * 2` to your `test` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_variable("test").is_equivalent("test = lambda x: x * 2")`))}) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index 35595b1ce03..521d69e8452 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -13,9 +13,11 @@ Lambda functions can be valuably combined with the `map()` function, which execu map(lambda x: x * 2, [1, 2, 3]) ``` +The function to execute is passed as the first argument, and the iterable is passed as the second argument. + The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index 11b69e423a1..0d904e4d542 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -1,6 +1,6 @@ --- id: 658238f7604f154ea9a23e1e -title: Schritt 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- @@ -9,7 +9,7 @@ dashedName: step-15 The `sum()` function returns the sum of the items in the iterable which is passed as its argument. You are going to use `sum()` together with `map()` and `lambda` functions to get the total amount of expenses. -For now, make a little test and modify your current `print()` call by passing `sum(map(test, [2, 3, 5, 8]))` as the argument. +For now, make a little test and modify your current `print()` call replacing the `list()` call with a call to the `sum()` function passing it the current `map()` call as the argument. # --hints-- @@ -36,7 +36,7 @@ def total_expenses(expenses): --fcc-editable-region-- test = lambda x: x * 2 -print(map(test, [2, 3, 5, 8])) +print(list(map(test, [2,3,5,8]))) --fcc-editable-region-- expenses = [] diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index 305846025f2..0c4b5191a9a 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -1,28 +1,22 @@ --- id: 65823b0167fd894f4a7ea60a -title: Schritt 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- # --description-- -Next, you are going to implement the same logic to the `total_expenses` function. +Next, you are going to implement the same logic within the `total_expenses` function. For now, delete both the `test` function and the `print()` call. # --hints-- -You should delete your `test` variable. +You should delete your `test` variable and the related `print()` call. ```js -({ test: () => assert.notMatch(code, /test\s*=/) }) -``` - -You should delete your `print(sum(map(test, [2, 3, 5, 8])))` call. - -```js -({ test: () => assert.notMatch(code, /print\s*\(\s*sum/) }) +({ test: () => assert.isFalse(runPython(`_Node(_code).has_variable("test")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index 931f0fabe5d..af93b0e12fc 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -1,27 +1,28 @@ --- id: 65823bbbdb4eaa4f9d20a0fb -title: Schritt 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- # --description-- -Within your `total_expenses` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the value of the `'amount'` key in the `expense` dictionary. +In the `total_expenses` function, you'll now integrate a lambda function. Replace `pass` with a lambda function that has `expense` as its parameter. + +`expense` is expected to be a dictionary, and your lambda function should return the value of the `'amount'` key in the `expense` dictionary. # --hints-- -You should have `lambda expense: expense['amount']` in your `total_expenses` function. +You should create a `lambda` function that uses the parameter `expense` and returns `expense['amount']` in your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_stmt("lambda expense: expense['amount']")`)) }) +``` + +You should not have `pass` in your `total_expenses` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("total_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index 6a0c68b96b4..c06ab93c264 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -1,6 +1,6 @@ --- id: 65823cfc74aa564ffc460489 -title: Schritt 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- @@ -11,17 +11,22 @@ Now, call `map()` passing your `lambda` function as the first argument and the ` # --hints-- -You should have `map(lambda expense: expense['amount'], expenses)` in your code. +You should call the `map()` function inside the `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("total_expenses").find_calls("map")) == 1`)) }) +``` + +You should pass your `lambda` function as the first argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[0].is_equivalent("lambda expense: expense['amount']")`)) }) +``` + +You should pass the `expenses` list as the second argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index 0aa3c46e4d2..29c09ae0262 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -1,6 +1,6 @@ --- id: 65823dde36392f505a39f7c7 -title: Schritt 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- @@ -11,17 +11,10 @@ Finally, pass your `map()` call to the `sum()` function to obtain the total expe # --hints-- -You should return `sum(map(lambda expense: expense['amount'], expenses))` from your `total_expenses` function. +You should call the `sum()` function passing it your current `map()` call as the argument and return the result from your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+sum\s*\(\s*map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_return("sum(map(lambda expense: expense['amount'], expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index 344b27a2bf8..63af9be4151 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -1,6 +1,6 @@ --- id: 65823e87c9741750a22085a7 -title: Schritt 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index 90062492a86..289c306da64 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -1,27 +1,26 @@ --- id: 65823ff0d4b991510fade1a8 -title: Schritt 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- # --description-- -Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category`. +Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -You should have `lambda expense: expense['category'] == category` inside the `filter_expenses_by_category` function. +You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) +``` + +You should not have `pass` inside the `filter_expenses_by_category` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index d820771f21f..fc8cab1fff0 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -1,6 +1,6 @@ --- id: 65824111a09164518320088d -title: Schritt 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- @@ -13,23 +13,30 @@ The `filter()` function allows you to select items from an iterable, such as a l filter(my_function, my_list) ``` -`filter()` returns an iterator in which the elements of `my_list` are included, for which `my_function` returns `True`. An iterator is a special object that enables you to iterate over the elements of a collection, like a list. +`filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. + +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. # --hints-- -You should have `filter(lambda expense: expense['category'] == category, expenses)` in your `filter_expenses_by_category` function. +You should call `filter()` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")) == 1`)) }) +``` + +You should pass `lambda expense: expense['category'] == category` as the first argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[0].is_equivalent("lambda expense: expense['category'] == category")`)) }) +``` + +You should pass `expenses` as the second argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index 2aec8800f96..f0f6c12e365 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -1,6 +1,6 @@ --- id: 658244fdf4b0265334711664 -title: Schritt 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- @@ -14,14 +14,7 @@ Finally, return the result of the `filter()` call. You should return the result of the `filter()` call from your `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_return("filter(lambda expense: expense['category'] == category, expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index 650c9074b9e..cae351eee31 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -1,6 +1,6 @@ --- id: 65824561f3478e5371a33ae5 -title: Schritt 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- @@ -19,6 +19,8 @@ You should define a function named `main()` without parameters. ({ test: () => assert(runPython(` import inspect inspect.isfunction(main) + sig = str(inspect.signature(main)) + sig == '()' `)) }) ``` @@ -26,12 +28,7 @@ You should define a function named `main()` without parameters. You should move the `expenses` list inside the `main()` function body. ```js -({ test: () => assert(runPython(` - import inspect - sig = str(inspect.signature(main)) - sig == '()' - `)) -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_body().is_equivalent("expenses = []")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 55b60b45cb7..23b116aea50 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -1,6 +1,6 @@ --- id: 658246c28575d653d1f89b59 -title: Schritt 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- @@ -18,30 +18,16 @@ Below the `expenses` list, create a `while` loop. Use `True` for the condition, # --hints-- -You should have `while True:` in your `main()` function. +You should create a `while` loop using `True` as the condition within your `main()` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+while\s+True\s*:/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_conditions()[0].is_equivalent("True")`)) }) ``` -You should have `print('\nExpense Tracker')` in your `while` loop. +You should print `'\nExpense Tracker'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')\\nExpense\s*Tracker\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print")[0].is_equivalent("print('\\\\nExpense Tracker')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index 4085c905dd8..150c7896f1d 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -1,6 +1,6 @@ --- id: 65824872894f59546e3084e2 -title: Schritt 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- @@ -9,21 +9,18 @@ dashedName: step-26 The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. -After the `print()` call, add another one to print the string `'1. Add an expense'`. +After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. # --hints-- -You should have `print('1. Add an expense')` in your `while` loop. +You should print `'1. Add an expense'` within your `while` loop after the existing `print()` call. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')1\.\sAdd\san\sexpense\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index 22d112ba0aa..a557268c2db 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -1,6 +1,6 @@ --- id: 65824a1b16631c54fa524154 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- @@ -11,17 +11,14 @@ Next, add another `print()` call and pass the string `'2. List all expenses'`. # --hints-- -You should have `print('2. List all expenses')` in your `while` loop. +You should print `'2. List all expenses'` in your `while` loop after the existing `print()` calls. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')2\.\sList\sall\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index dc122615122..662e4d59211 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -1,53 +1,44 @@ --- id: 65824c7b4e2da85597693dcf -title: Schritt 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- # --description-- -Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. +Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. Keep adding the `print()` calls in order. # --hints-- You should have `print('3. Show total expenses')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')3\.\sShow\stotal\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('4. Filter expenses by category')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')4\.\sFilter\sexpenses\sby\scategory\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('5. Exit')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')5\.\sExit\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')", "print('5. Exit')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index f262854dfc7..6c5f7e20351 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -1,6 +1,6 @@ --- id: 65824dfdb6815d563b2d3256 -title: Schritt 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- @@ -13,17 +13,18 @@ Inside your `while` loop, call the `input()` function passing the string `'Enter # --hints-- -You should have `choice = input('Enter your choice: ')` in your `while` loop. +You should declare a variable named `choice` within your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+choice\s*=\s*input\s*\(\s*("|')Enter\syour\schoice:\s\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].has_variable("choice") +`)) }) +``` + +You should assign the result of the `input()` function, with the string `'Enter your choice: '` as its argument, to your `choice` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_variable("choice").is_equivalent("choice = input('Enter your choice: ')") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 12a1c76e82c..8f20aa4cf58 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -1,6 +1,6 @@ --- id: 6582507654b3ed5712341382 -title: Schritt 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- @@ -15,30 +15,27 @@ Inside the `if` statement body, declare a variable `amount` and assign it an emp # --hints-- -You should have `if choice == '1':` in your `while` loop: +You should create an `if` statement that checks if `choice` is equal to `'1'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[0] +cond.is_equivalent("choice == '1'") or cond.is_equivalent("'1' == choice") +`)) }) ``` -You should have `amount = input()` in your `if` statement body: +You should declare a variable named `amount` in your `if` statement body. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("amount") +`)) }) +``` + +You should assign an empty `input()` call to your `amount` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input()") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index 0868eefb8e9..15f326cb257 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -1,6 +1,6 @@ --- id: 658252f6b1526d57b103d48a -title: Schritt 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- @@ -13,17 +13,11 @@ Pass the string `'Enter amount: '` to your empty `input()` call, so you can stor # --hints-- -You should have `amount = input('Enter amount: ')` in your `if` statement. +You should pass `'Enter amount: '` to the `input()` call assigned to the `amount` variable. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*("|')Enter amount:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input('Enter amount: ')") +`)) }) ``` # --seed-- @@ -44,7 +38,6 @@ def total_expenses(expenses): def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) ---fcc-editable-region-- def main(): expenses = [] while True: @@ -56,7 +49,7 @@ def main(): print('5. Exit') choice = input('Enter your choice: ') - +--fcc-editable-region-- if choice == '1': amount = input() --fcc-editable-region-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index ea8a4918d6b..275d3f75aac 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -1,6 +1,6 @@ --- id: 658254db6e12485a48130f57 -title: Schritt 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- @@ -13,17 +13,11 @@ Pass `input('Enter amount: ')` to the `float()` function. # --hints-- -You should have `amount = float(input('Enter amount: '))` in your `if` statement. +You should pass `input('Enter amount: ')` to the `float()` function in the assignment of `amount`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = float(input('Enter amount: '))") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index 29678f71868..0249ed79c87 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -1,27 +1,26 @@ --- id: 658255d5f955175b270f251d -title: Schritt 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- # --description-- -Inside your `if` statement, create a variable `category` to store the expense category. Assign it `input('Enter category: ')`. +Inside your `if` statement, create a variable named `category` to store the expense category. Assign it a call to `input()` and use the `'Enter category: '` as the argument. # --hints-- -You should have `category = input('Enter category: ')` in your `if` statement. +You should declare a variable named `category` in your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("category")`)) }) +``` + +You should assign `input('Enter category: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("category").is_equivalent("category = input('Enter category: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index ca876a0c861..fd25bf41ee6 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -1,13 +1,13 @@ --- id: 6582575b8089f85b8b92d7c8 -title: Schritt 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- # --description-- -After getting the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. +Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. @@ -17,17 +17,22 @@ After getting the `amount` and `category` using `input()`, call the `add_expense # --hints-- -You should have `add_expense(expenses, amount, category)` in your `if` statement. +You should call the `add_expense()` function within your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)\s*add_expense\s*\(\s*expenses\s*,\s*amount\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_calls("add_expense")) == 1`)) }) +``` + +You should pass three arguments to your `add_expense()` call: `expenses`, `amount`, and `category`. The order matters. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_call("add_expense(expenses, amount, category)")`)) }) +``` + +Your `add_expense()` call should come after the assignment of `amount` and `category`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].is_equivalent("amount = float(input('Enter amount: '))\\ncategory = input('Enter category: ')\\nadd_expense(expenses, amount, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index c0f179510b8..7ca152b9bde 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -1,42 +1,31 @@ --- id: 658258c0e5fbe85c14c060cf -title: Schritt 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- # --description-- -To list all expenses, you can use an `elif` statement after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. +To list all expenses, you can use an `elif` clause after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. -Create an `elif` statement to check if the user's choice equals the string `2`. Inside the `elif` statement, print the string `'\nAll Expenses:'`. +Create an `elif` clause to check if the user's choice equals the string `'2'`. Inside the `elif` clause, print the string `'\nAll Expenses:'`. # --hints-- -You should have `elif choice == '2':` after your `if` statement. +You should create an `elif` clause that checks that `choice` is equal to `'2'` after your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[1] +cond.is_equivalent("choice == '2'") or cond.is_equivalent("'2' == choice") +`)) }) ``` -You should have `print('\nAll Expenses:')` inside your `elif` statement. +You should print `'\nAll Expenses:'` inside your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index 8edabb9c3c1..0bc3402cf58 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -1,6 +1,6 @@ --- id: 65825a9520a0795c8afbef50 -title: Schritt 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- @@ -11,17 +11,16 @@ After the `print()` call, call the `print_expenses` function to display all the # --hints-- -You should have `print_expenses(expenses)` in your `elif` statement. +You should call the `print_expenses()` function within your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)\s*print\s*_expenses\s*\(\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].find_calls("print_expenses")) == 1`)) }) +``` + +You should pass the `expenses` list as the argument to your `print_expenses()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print_expenses(expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index 69c108f018b..6c1297bc068 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -1,6 +1,6 @@ --- id: 65825b758fe85a5cebabc8c5 -title: Schritt 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- @@ -13,30 +13,19 @@ If it's true, it means the user wants to see the total expenses. So call `print( # --hints-- -You should have `elif choice == '3':` in your code. +You should create an `elif` clause that checks if `choice == '3'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert.match(function_body, /\s+elif\s+choice\s*==\s*("|')3\1\s*:/); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[2] +cond.is_equivalent("choice == '3'") or cond.is_equivalent("'3' == choice") +`)) }) ``` -You should have `print('\nTotal Expenses: ', total_expenses(expenses))` in your `elif` statement. +You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')3\1\s*:\s*print\s*\(\s*("|')\\nTotal\sExpenses:\s\2\s*,\s*total_expenses\s*\(\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[2].has_call("print('\\\\nTotal Expenses: ', total_expenses(expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index 86169026ab8..676b0ec42f7 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -1,40 +1,35 @@ --- id: 65825cda2668995d5168e37c -title: Schritt 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- # --description-- -Create another `elif` statement that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. +Create another `elif` clause that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. # --hints-- -You should have `elif choice == '4':` in your code. +You should create an `elif` clause that checks if `choice == '4'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[3] +cond.is_equivalent("choice == '4'") or cond.is_equivalent("'4' == choice") +`)) }) ``` -You should have `category = input('Enter category to filter: ')` in your new `elif` statement. +You should declared a variable named `category` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("category")`)) }) +``` + +You should assign `input('Enter category to filter: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("category").is_equivalent("category = input('Enter category to filter: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index 83d18cb3364..d354cb667cb 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -1,6 +1,6 @@ --- id: 65825e96b5db5f5dee6bf57c -title: Schritt 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- @@ -11,17 +11,10 @@ After getting the category, print the following f-string `f'\nExpenses for {cate # --hints-- -You should print `f'\nExpenses for {category}:'` inside the `elif` statement. +You should print `f'\nExpenses for {category}:'` after the assignment of `category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index d2d39ae830f..669de4ae215 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -1,6 +1,6 @@ --- id: 6582601b2987045e8e7da994 -title: Schritt 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- @@ -11,17 +11,22 @@ After your `print()` call, you need to filter the expenses and print the filtere # --hints-- -You should have `expenses_from_category = filter_expenses_by_category(expenses, category)` in your `elif` statement. +You should declare a variable named `expenses_from_category` in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("expenses_from_category")`)) }) +``` + +You should call `filter_expenses_by_category()` passing `expenses` and `category` as the arguments and assign it to your `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("expenses_from_category").is_equivalent("expenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) +``` + +Your `expenses_from_category` variable should come after the `print()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index 1a82b9eb539..4801aa6d338 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -1,27 +1,26 @@ --- id: 6582622cb6c11a5f4c5d79b4 -title: Schritt 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- # --description-- -Still within the `elif` statement, pass `expenses_from_category` iterator to a `print_expenses` call. +Still within the `elif` clause, pass the `expenses_from_category` iterator to a `print_expenses` call. # --hints-- -You should have `print_expenses(expenses_from_category)` in your code. +You should call `print_expenses()` passing `expenses_from_category` as the argument in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)\s*print_expenses\s*\(\s*expenses_from_category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_call("print_expenses(expenses_from_category)")`)) }) +``` + +Your `print_expenses()` call should come after the `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)\\nprint_expenses(expenses_from_category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index 3a29c02d1de..911a95cf962 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -1,42 +1,31 @@ --- id: 6582687859366a618424d84b -title: Schritt 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- # --description-- -To provide a way to exit the program, use another `elif` statement to check if `choice` equals the string `'5'`. +To provide a way to exit the program, use another `elif` clause to check if `choice` equals the string `'5'`. -Inside the new `elif` statement, print the string `'Exiting the program.'` to show that the program is terminating its execution. +Inside the new `elif` clause, print the string `'Exiting the program.'` to show that the program is terminating its execution. # --hints-- -You should have `elif choice == '5':` in your code. +You should create an `elif` clause that checks if `choice == '5'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4] +cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice") +`)) }) ``` -You should print `'Exiting the program.'` in your new `elif` statement. +You should print `'Exiting the program.'` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:\s*print\s*\(\s*("|')Exiting\sthe\sprogram.\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 69e523d58c5..712c3072018 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -1,27 +1,20 @@ --- id: 65826a6e9d189a623141c726 -title: Schritt 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- # --description-- -Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` statement. +Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` clause. # --hints-- -You should have a `break` statement inside your last `elif`. +You should have a `break` statement after the `print()` call inside your last `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+break/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].is_equivalent("print('Exiting the program.')\\nbreak")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index 186f547c285..f2fec123e71 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -1,13 +1,15 @@ --- id: 65826af5b226a5628aa154b1 -title: Schritt 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- # --description-- -Finally, call your `main()` function, and try the expense tracker program. +Finally, call your `main()` function, and try the expense tracker program in the console. + +With that, the expense tracker project is complete! # --hints-- @@ -74,3 +76,58 @@ def main(): --fcc-editable-region-- ``` + +# --solutions-- + +```py +def add_expense(expenses, amount, category): + expenses.append({'amount': amount, 'category': category}) + +def print_expenses(expenses): + for expense in expenses: + print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') + +def total_expenses(expenses): + return sum(map(lambda expense: expense['amount'], expenses)) + +def filter_expenses_by_category(expenses, category): + return filter(lambda expense: expense['category'] == category, expenses) + + +def main(): + expenses = [] + while True: + print('\nExpense Tracker') + print('1. Add an expense') + print('2. List all expenses') + print('3. Show total expenses') + print('4. Filter expenses by category') + print('5. Exit') + + choice = input('Enter your choice: ') + + if choice == '1': + amount = float(input('Enter amount: ')) + category = input('Enter category: ') + add_expense(expenses, amount, category) + + elif choice == '2': + print('\nAll Expenses:') + print_expenses(expenses) + + elif choice == '3': + print('\nTotal Expenses: ', total_expenses(expenses)) + + elif choice == '4': + category = input('Enter category to filter: ') + print(f'\nExpenses for {category}:') + expenses_from_category = filter_expenses_by_category(expenses, category) + print_expenses(expenses_from_category) + + elif choice == '5': + print('Exiting the program.') + break + +main() + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index 41d73a0dc6b..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: Schritt 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index 116ca22a92f..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: Schritt 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index d4f65561e29..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: Schritt 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index aaeb294d453..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: Schritt 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index f0daf5db518..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: Schritt 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index aa2a89457d5..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: Schritt 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index ffa6900aacb..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: Schritt 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index 81db000fdaf..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: Schritt 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index 35990acf062..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: Schritt 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index 763b6b99bbe..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: Schritt 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index 45332038bef..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: Schitt 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index ccabfb9213d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: Schritt 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Denke daran, `pass` zu verwenden. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 4292905dcaa..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: Schritt 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 71ab68057f6..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: Schritt 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Denke daran, das `pass`-Schlüsselwort zu verwenden. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index 7d275a0a91b..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: Schritt 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index 06364fb0e4d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: Schritt 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index 258c3c1ac7d..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: Schritt 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index 03819f7acf6..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: Schritt 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index 4c07244cead..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: Schritt 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index 9f049865299..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: Schritt 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index da7161fb3e7..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: Schritt 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index 4d86517516e..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: Schritt 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index 2b51d2c0d19..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: Schritt 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Write another `if` statement that checks if the target key is less than the key of the current node. - -Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. - -# --hints-- - -You should write another `if` statement to check if `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -You should return `self._search(node.left, key)` from your new `if` block. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index 1d2d949a27e..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: Schritt 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index 9433b624549..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: Schritt 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index 68e12ae1518..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Denke daran, `pass` zu verwenden. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 6104d903af1..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: Schritt 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index 61d75afa56e..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: Schritt 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index b534c34aca9..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: Schritt 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index 470c765f325..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: Schritt 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index f9e5198f533..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: Schritt 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index 718fb69db57..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: Schritt 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index b527ec1277f..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: Schritt 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index 6ffa71e59b4..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: Schritt 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Denke daran, das `pass`-Schlüsselwort zu verwenden. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index 49820540d5b..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: Schritt 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index a03db1953b6..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: Schritt 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index 54267eb50fe..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: Schritt 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index d336b53ad27..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: Schritt 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index 00f5114ab09..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: Schritt 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index efb042d27a0..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: Schritt 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Denke daran, das `pass`-Schlüsselwort zu verwenden. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index 98927b1ebdf..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: Schritt 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index 14b0aee4bc0..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: Schritt 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index cb859bbe1b8..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: Schritt 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index 4d57bb26843..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: Schritt 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Denke daran, `pass` zu verwenden. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index 176e8fdb00b..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: Schritt 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index c6f71419ade..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: Schritt 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index f1ce457c892..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: Schritt 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index c9d4c8ae4c4..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: Schritt 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index 328d51d7a26..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: Schritt 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index ba16de7a103..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: Schritt 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index 37e482201d3..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: Schritt 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index c3b2fadd8e7..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: Schritt 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index 0ffd7e5acb3..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: Schritt 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index b34b18d52f1..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: Schritt 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 89debefdc7b..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: Schritt 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index 81a885be404..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: Schritt 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index ace653de029..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: Schritt 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Denke daran, `pass` zu verwenden. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index 8cad36e5174..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: Schritt 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index 80bbdd05f39..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: Schritt 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index eb63c3686af..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: Schritt 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index 4fe9e23d726..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: Schritt 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index e788c037c14..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: Arithmetischer Formatierer -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -Schüler der Grundschule stellen oft arithmetische Probleme vertikal auf, um sie leichter lösen zu können. Zum Beispiel wird "235 + 52" zu: - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. Optional sollte die Funktion ein zweites Argument verwenden. Wenn das zweite Argument auf `True` gesetzt ist, sollten die Antworten gezeigt werden. - -## Beispiel - -Function-Call: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -Output: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -Function-Call: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -Output: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## Regeln - -Die Funktion gibt die korrekte Konvertierung zurück, wenn die übergebenen Probleme richtig formatiert sind. Andernfalls **gibt** er einen **String** zurück, der einen für den Benutzer aussagekräftigen Fehler beschreibt. - -- Situationen, die einen Fehler zurückgeben: - - Wenn **too many problems** an die Funktion übermittelt werden. The limit is **five**, anything more will return: `'Error: Too many problems.'` - - Die entsprechenden Operatoren, die die Funktion akzeptieren wird, sind **Addition** und **Subtraktion**. Multiplikation und Division geben einen Fehler zurück. Andere Operatoren, die nicht in diesem Punkt erwähnt werden, müssen nicht getestet werden. The error returned will be: `"Error: Operator must be '+' or '-'."` - - Jede Zahl (Operand) sollte nur Ziffern enthalten. Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - Jeder Operand (d. h. die Zahl auf jeder Seite des Operators) ist maximal vier Stellen breit. Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- Wenn der Nutzer das richtige Format der Probleme angegeben hat, wird die von dir zurückgegebene Konvertierung diesen Regeln folgen: - - Zwischen dem Operator und dem längsten der beiden Operanden sollte ein einzelnes Leerzeichen stehen, der Operator steht in derselben Zeile wie der zweite Operand, beide Operanden stehen in derselben Reihenfolge wie angegeben (der erste ist der oberste, der zweite der unterste). - - Zahlen sollten rechts-ausgerichtet sein. - - Zwischen den einzelnen Aufgaben sollten vier Leerzeichen stehen. - - Am Ende jeder Aufgabe sollten Bindestriche stehen. Die Bindestriche sollten sich über die gesamte Länge der einzelnen Aufgaben erstrecken. (Das obige Beispiel zeigt, wie dies aussehen sollte.) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index 056d708734c..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: Budget-App -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. Es sollte in der Lage sein, Objekte basierend auf verschiedenen Haushaltskategorien, wie *food*, *clothing*, und *entertainment* zu instanziieren. Wenn Objekte erstellt werden, werden sie im Namen der Kategorie übergeben. Die Klasse sollte eine Instanzvariable namens `ledger` (Hauptbuch) haben, die eine Liste ist. Die Klasse sollte auch die folgenden Methoden beinhalten: - -- Eine `deposit`-Methode, die einen Betrag und eine Beschreibung annimmt. Wenn keine Beschreibung angegeben wird, sollte standardmäßig eine leere Zeichenfolge ausgegeben werden. Die Methode sollte ein Objekt in Form von `{"amount": amount, "description": description}` an die Ledgerliste anhängen. -- Eine `withdraw`-Methode, die der `deposit`-Methode ähnelt, bei der der übergebene Betrag jedoch als negative Zahl im Hauptbuch gespeichert werden soll. Wenn die Mittel nicht ausreichen, sollte nichts in das Hauptbuch eingetragen werden. Diese Methode sollte `True` zurückgeben, wenn die Auszahlung stattgefunden hat, ansonsten sollte sie `False` ausgeben. -- Eine `get_balance`-Methode, die den aktuellen Saldo der Kategorie des Budgets auf der Grundlage der erfolgten Einzahlungen und Abhebungen zurückgibt. -- Eine `transfer`-Methode, die einen Betrag und eine andere Budgetkategorie als Argument akzeptiert. Die Methode sollte eine Entnahme mit dem Betrag und der Beschreibung "Transfer to [Destination Budget Category]" hinzufügen. Die Methode sollte dann eine Einzahlung in die andere Budgetkategorie mit dem Betrag und der Beschreibung "Übertragung von [Source Budget Category]" hinzufügen. Wenn nicht genügend Mittel vorhanden sind, sollte in keinem der beiden Hauptbücher etwas hinzugefügt werden. Diese Methode sollte `True` zurückgeben, wenn die Übertragung bereits stattgefunden hat, andernfalls sollte sie `False` zurückgeben. -- Eine `check_funds`-Methode, die einen Betrag als Argument akzeptiert. Es wird `False` zurückgegeben, wenn der Betrag größer ist als der Saldo der Budgetkategorie, ansonsten wird `True` zurückgegeben. Diese Methode sollte sowohl von der Methode `withdraw` als auch von der Methode `transfer` verwendet werden. - -Wenn das Budgetobjekt ausgegeben wird, sollte es folgendes anzeigen: - -- Eine Titelzeile mit 30 Zeichen, in der der Name der Kategorie in einer Zeile mit `*`-Zeichen zentriert ist. -- Eine Liste der Elemente im Hauptbuch. Jede Zeile sollte die Beschreibung und den Betrag anzeigen. Die ersten 23 Zeichen der Beschreibung sollten angezeigt werden und dann der Betrag. Der Betrag sollte rechts ausgerichtet sein, zwei Dezimalstellen enthalten und maximal 7 Zeichen anzeigen. -- Eine Zeile, die die Gesamtanzahl der Kategorien anzeigt. - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -Neben der `Category`-Klasse, erstelle eine Funktion (außerhalb der Klasse) namens `create_spend_chart`, die eine Liste der Kategorien als Argument verwendet. Es sollte einen String zurückgeben, das ein Balkendiagramm ist. - -Das Diagramm sollte den Prozentsatz jeder Kategorie anzeigen, die an die Funktion übergeben wurde. Der ausgegebene Prozentsatz sollte nur mit den Auszahlungen und nicht mit den Einzahlungen berechnet werden. Unten auf der linken Seite des Diagramms sollten die Labels 0 - 100 stehen. Die "Balken" im Balkendiagramm sollten aus dem "o"-Zeichen gemacht werden. Die Höhe jedes Balken sollte auf die nächstgelegene 10 abgerundet werden. Die horizontale Linie unter den Balken sollte zwei Leerzeichen hinter der Endleiste haben. Jeder Kategoriename sollte vertikal unterhalb des Balkens angegeben werden. Ganz oben sollte ein Titel stehen, der "Prozentsatz der Ausgaben nach Kategorie" angibt. - -Die Funktion wird mit bis zu vier Kategorien getestet. - -Schau dir die Beispielausgabe unten sehr genau an und stelle sicher, dass der Abstand der Ausgabe genau dem Beispiel entspricht. - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 934a94ee731..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: Polygon-Flächenrechner -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Rechteck-Klasse - -Es sollte mit den Attributen `width` und `height` initialisiert werden, wenn ein Rechteck-Objekt erstellt wird. Die Klasse sollte ebenfalls folgende Methoden enthalten: - -- `set_width` -- `set_height` -- `get_area`: Gibt den Bereich (`width * height`) zurück -- `get_perimeter`: Gibt den Umfang (`2 * width + 2 * height`) zurück -- `get_diagonal`: Gibt die Diagonale (`(width ** 2 + height ** 2) ** .5`) zurück -- `get_picture`: Gibt eine Zeichenfolge zurück, die die Form mit Hilfe von Zeilen aus "\*" darstellt. Die Anzahl der Zeilen sollte der Höhe und die Anzahl der "\*" in jeder Zeile sollte der Breite entsprechen. Am Ende jeder Zeile sollte eine neue Zeile (`\n`) stehen. Wenn die Breite oder Höhe größer als 50 ist, sollte dies die Zeichenfolge zurückgeben: "Zu groß für das Bild.". -- `get_amount_inside`: Nimmt eine andere Form (Quadrat oder Rechteck) als Argument. Gibt die Anzahl der Male zurück, die die übergebene Form in die Form passen könnte (ohne Drehungen). Zum Beispiel könnte ein Rechteck mit einer Breite von 4 und einer Höhe von 8 in zwei Quadrate mit 4 Seiten passen. - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Quadrat-Klasse - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## Beispiel für die Verwendung - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -Dieser Code sollte zurückgeben: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index 506113badaf..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: Wahrscheinlichkeitsrechner -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -Angenommen, es gibt einen Hut mit 5 blauen Kugeln, 4 roten Kugeln und 2 grünen Kugeln. Was ist die Wahrscheinlichkeit, dass bei einer zufälligen Ziehung von 4 Kugeln mindestens 1 rote Kugel und 2 grüne Kugeln gezogen werden? Es wäre zwar möglich, die Wahrscheinlichkeit mit Hilfe fortgeschrittener Mathematik zu berechnen, aber einfacher ist es, ein Programm zu schreiben, das eine große Anzahl von Experimenten durchführt, um eine ungefähre Wahrscheinlichkeit zu schätzen. - -Für dieses Projekt wirst du ein Programm schreiben, dass die ungefähre Wahrscheinlichkeit bestimmen soll, bestimmte Kugeln aus einem Hut zu ziehen. - -First, create a `Hat` class in `main.py`. Die Klasse sollte eine variable Anzahl von Argumenten verwenden, die die Anzahl der Kugeln jeder Farbe angibt, die im Hut enthalten sind. Zum Beispiel könnte ein Klassenobjekt auf diese Weise erstellt werden: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -Ein Hut wird immer mit mindestens einer Kugel erstellt. Die Argumente, die beim Erstellen an das Hut-Objekt übergeben werden, sollten in eine `contents` Instanzvariable konvertiert werden. `contents` sollte eine Liste von Strings sein, die jeweils ein Element für jede Kugel im Hut enthalten. Jedes Element in der Liste sollte ein Farbname sein, der eine einzelne Kugel dieser Farbe darstellt. Zum Beispiel, wenn dein Hut `{"red": 2, "blue": 1}` enthält, sollte `contents` `["red", "red", "blue"]` beinhalten. - -Die `Hat`-Klasse sollte eine `draw`-Methode haben, die ein Argument akzeptiert, dass die Anzahl der Kugeln angibt, die aus dem Hut gezogen werden. Diese Methode sollte Kugeln zufällig aus `contents` entfernen und diese Kugeln als eine Liste von String zurückgeben. Die Kugeln sollten während des Ziehens nicht wieder in den Hut zurückkehren, wie ein Urnen-Experiment ohne Zurücklegen. Wenn die Anzahl der zu ziehenden Kugeln die verfügbare Menge übersteigt, gib alle Kugeln zurück. - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). Diese Funktion sollte die folgenden Argumente akzeptieren: - -- `hat`: Ein Hut-Objekt, das Bälle enthält, das innerhalb der Funktion kopiert werden soll. -- `expected_balls`: Ein Objekt, das die genaue Gruppe von Bällen angibt, die für das Experiment aus dem Hut gezogen werden sollen. Setze zum Beispiel `expected_balls` auf `{"blue":2, "red":1}`, um die Wahrscheinlichkeit zu bestimmen, dass 2 blaue Kugeln und 1 rote Kugel aus dem Hut gezogen werden. -- `num_balls_drawn`: Die Anzahl der Bälle, die in jedem Experiment aus dem Hut gezogen werden sollen. -- `num_experiments`: Die Anzahl der durchzuführenden Experimente. (Je mehr Experimente durchgeführt werden, desto genauer wird die ungefähre Wahrscheinlichkeit sein.) - -Die `experiment`-Funktion sollte eine Wahrscheinlichkeit zurückgeben. - -Wenn du zum Beispiel die Wahrscheinlichkeit bestimmen willst, dass du mindestens zwei rote Kugeln und eine grüne Kugel bekommst, wenn du fünf Kugeln aus einem Hut ziehst, der sechs schwarze, vier rote und drei grüne enthält. Um dies zu tun, wirst du `N` Experimente durchführen, zähle wie viele Male `M` du erhältst. Mindestens zwei rote Bälle und einen grünen Ball und bestimme die Wahrscheinkeit mit `M/N`. Jedes Experiment besteht darin, dass man mit einem Hut beginnt, der die angegebenen Kugeln enthält, mehrere Kugeln zieht und überprüft, ob man die Kugeln, die man zu ziehen versucht hat, auch bekommen hat. - -So würdest du die `experiment`-Funktion, basierend auf dem obigen Beispiel von 2000 Experimenten durchführen: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -Da dies auf zufälligen Ziehungen basiert, wird die Wahrscheinlichkeit jedes Mal, wenn der Code ausgeführt wird, etwas anders sein. - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index 197c2715b92..00000000000 --- a/curriculum/challenges/german/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: Zeitrechner -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -Erstelle eine Funktion namens `add_time`, die zwei notwendige Parameter und einen optionalen Parameter enthält: - -- eine Startzeit im 12-Stunden-Format (endend mit AM oder PM) -- eine Zeitdauer, die die Anzahl der Stunden und Minuten angibt -- (optional) ein Anfangstag der Woche, Groß- und Kleinschreibung wird nicht berücksichtigt - -Die Funktion sollte die Zeitdauer zur Startzeit hinzufügen und das Ergebnis zurückgeben. - -Wenn das Ergebnis am nächsten Tag ist, sollte es `(next day)` nach der Zeit anzeigen. Wenn das Ergebnis mehr als einen Tag später ist, sollte es `(n days later)` hinter der Zeit anzeigen, wobei "n" die Anzahl der Tage ist. - -Wenn die Funktion den optionalen Starttag des Wochen-Parameters erhalten hat, dann sollte die Ausgabe den Wochentag des Ergebnisses anzeigen. Der Wochentag in der Ausgabe sollte nach der Zeit und vor der Anzahl der Tage später erscheinen. - -Unten findest du einige Beispiele für verschiedene Fälle, die deine Funktion bearbeiten soll. Achte auf den Abstand und auf die Satzzeichen der Ergebnisse. - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -Importiere keine Python-Bibliotheken. Nimm an, dass die Startzeiten gültige Zeiten sind. Die Minuten in der Zeitdauer werden als ganze Zahl, kleiner als 60 angezeigt. Die Stunde kann aber jede ganze Zahl sein. - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index d308f3bee4f..28ddce8ffdd 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -In this project, you will learn the basics of CSS(Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. Wie du in den letzten Schritten der Katzenfoto-App bereits gelernt hast, ist eine grundlegende Struktur erforderlich, um deine Webseite zu erstellen. Every HTML document should have a `DOCTYPE` declaration and `html` element. The `DOCTYPE` tells the browser which version of HTML the document is in. And the `html` element represents the root element which contains all other elements. diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md index 23149ea61b6..00994f44fcf 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md @@ -15,7 +15,7 @@ Hier ist ein Beispiel für ein `img`-Element mit einem `src`-Attribut, das auf d ``` -Füge innerhalb des vorhandenen `img`-Elements ein `src`-Attribut mit dieser URL hinzu: +Inside the existing `img` element, add a `src` attribute with this URL: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` @@ -27,7 +27,7 @@ Dein Code sollte ein `img`-Element enthalten. Möglicherweise hast du das `img`- assert(document.querySelector('img')); ``` -Dein `img`-Element sollte ein `src`-Attribut enthalten. Du hast entweder das Attribut weggelassen oder einen Tippfehler gemacht. Stelle sicher, dass zwischen dem Namen des Elements und dem Namen des Attributs ein Leerzeichen vorhanden ist. +Your `img` element should have a `src` attribute. Du hast entweder das Attribut weggelassen oder einen Tippfehler gemacht. Stelle sicher, dass zwischen dem Namen des Elements und dem Namen des Attributs ein Leerzeichen vorhanden ist. ```js assert(document.querySelector('img').src); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md index 8311f6a79a8..201c44c56a9 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md @@ -21,7 +21,7 @@ Umwandle das Bild in einen Link, indem du es mit den notwendigen Tags der Elemen # --hints-- -Du solltest ein `img`-Element mit einem `src`-Wert von `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` haben. Möglicherweise hast du es versehentlich gelöscht. +You should have an `img` element with a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. Möglicherweise hast du es versehentlich gelöscht. ```js assert( diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md index b8eca5819c9..255cb266b9f 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -Füge nach der unsortierten Liste ein neues Bild mit einem `src`-Attribut mit dem folgenden Wert hinzu: +After the unordered list, add a new image with a `src` attribute value set to: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` @@ -40,13 +40,13 @@ assert( ); ``` -Das neue Bild besitzt kein `src`-Attribut. Überprüfe, ob nach dem Namen des öffnenden Tags ein Leerzeichen steht und/oder ob vor allen Attributnamen Leerzeichen stehen. +The new image does not have a `src` attribute. Überprüfe, ob nach dem Namen des öffnenden Tags ein Leerzeichen steht und/oder ob vor allen Attributnamen Leerzeichen stehen. ```js assert($('section')[1].lastElementChild.hasAttribute('src')); ``` -Das neue Bild sollte `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` als `src`-Wert enthalten. Stelle sicher, dass der Wert des `src`-Attributs in Anführungzeichen gesetzt wird. +The new image should have a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Stelle sicher, dass der Wert des `src`-Attributs in Anführungzeichen gesetzt wird. ```js assert( diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index 67c167995cf..9ad7225a52b 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -38,7 +38,7 @@ assert( ); ``` -Das dritte Bild sollte ein `src`-Attribut auf `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg` gesetzt haben. +The third image should have a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index 6759c7eefb0..99ce41ba51e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -Erstelle innerhalb deines `.cat-left-ear`-Elements ein weiteres `div`-Element mit der Klasse `cat-left-inner-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -Du solltest dein vorhandenes `div`-Element mit der Klasse `cat-left-ear` nicht verändern. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -Du solltest ein `div`-Element innerhalb deines `.cat-left-ear`-Elements haben. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -Dein `div`-Element sollte die Klasse `cat-left-inner-ear` enthalten. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index f6af3af26e2..00000000000 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: Schritt 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Erstelle innerhalb deines `.cat-right-ear`-Elements ein weiteres `div`-Element mit der Klasse `cat-right-inner-ear`. - -# --hints-- - -Du solltest dein vorhandenes `div`-Element mit der Klasse `cat-right-ear` nicht verändern. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -Du solltest ein `div`-Element innerhalb deines `.cat-right-ear`-Elements haben. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -Dein `div`-Element sollte die Klasse `cat-right-inner-ear` enthalten. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index 9588bd628a6..32e64c49709 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: Schritt 23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index 31f69a14274..9e87cb3751e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: Schritt 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index e09ee3f306f..9b1335c73b5 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: Schritt 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index 261a2f8f41a..3ea52a9070e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: Schritt 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index 932200af48d..8db8aeca320 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: Schritt 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index 2b323649643..1a982bac405 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: Schritt 28 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index e481add209d..f75da52b136 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: Schritt 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ Drehe das rechte Ohr wie das linke Ohr um 45 Grad. # --hints-- -Du solltest die `transform`-Eigenschaft deines `.right-ear`-Elements auf `rotate(45deg)` setzen. Vergiss nicht, ein Semikolon hinzuzufügen. +You should set the `transform` property of your `.cat-right-ear` element to `rotate(45deg)`. Vergiss nicht, ein Semikolon hinzuzufügen. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index b04a3caed69..ba66bbda395 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: Schritt 30 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index 16b497bf4f9..9e70a6bf9fd 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: Schritt 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ The ears should always be placed above the part of the head it overlaps. Dies ka `z-index` ist eine Eigenschaft, mit der du die Reihenfolge der sich überlappenden HTML-Elemente festlegen kannst. Jedes Element mit einem höheren `z-index` wird immer über einem Element mit einem niedrigeren `z-index` positioniert. -Setze die `z-index`-Eigenschaft des linken Ohrs auf `-1`, um `z-index` in Aktion zu sehen. +To see `z-index` in action, set the `z-index` property of the left ear to `-1`. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index 78e8b529a98..c0fbbb4c5e2 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: Schritt 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index 563bee5f053..7846d03f2e2 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,13 +1,13 @@ --- id: 646cfde6ac612e5d60391f50 -title: Schritt 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- -Lege die `z-index`-Eigenschaft des rechten Ohrs auf `1` fest, so dass es immer über dem Kopf bleibt. +Set the `z-index` property of the right ear to `1` so it always stays over the head. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index 764409655f0..8c80f4a9629 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: Schritt 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index 98838c79841..90fc67ac909 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: Schritt 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index e67e4ddaf51..7eef3d99dfa 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: Schritt 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index d34504a3723..d8d38bffa9e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: Schritt 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index d6b7ccef13c..ee62a78d941 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: Schritt 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index 5778fc0b0ea..c32c6ec8e87 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: Schritt 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index ed582e1fa7a..94f966eedcd 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: Schritt 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- Jetzt beginnst du mit dem Bearbeiten der Augen der Katze. Wie die Ohren werden auch die Augen innere Augen haben. -Erstelle ein `div`-Element mit der Klasse `cat-eyes`. Erstelle innerhalb des `cat-eyes`-Elements zwei `div`-Elemente mit der Klasse `cat-left-eye` bzw. `cat-right-eye`. +Erstelle ein `div`-Element mit der Klasse `cat-eyes`. Inside the `.cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index 30b39977f93..7b9e5cfe805 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -1,13 +1,13 @@ --- id: 646ddd3f9f97a0667b964bdb -title: Schritt 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- -Erstelle innerhalb des `.cat-left-eye`-Elements ein weiteres `div`-Element mit der Klasse `cat-left-inner-eye`. +Create two `div` elements, one with the class `cat-left-inner-eye` inside the `.cat-left-eye` element and another with the class `cat-right-inner-eye` inside the `.cat-right-eye` element. # --hints-- @@ -17,18 +17,36 @@ Du solltest dein vorhandenes `div`-Element mit der Klasse `cat-left-eye` nicht v assert(document.querySelectorAll('div.cat-left-eye').length === 1); ``` -Du solltest ein `div`-Element innerhalb deines `.cat-left-eye`-Elements haben. +You should not change the existing `div` element with the class `.cat-right-eye`. + +```js +assert(document.querySelectorAll('div.cat-right-eye').length === 1); +``` + +You should have one `div` element inside your `.cat-left-eye` element. ```js assert(document.querySelectorAll('.cat-left-eye div').length === 1); ``` -Dein `div`-Element sollte die Klasse `cat-left-inner-eye` enthalten. +You should have one `div` element inside your `.cat-right-eye` element. + +```js +assert(document.querySelectorAll('.cat-right-eye div').length === 1); +``` + +The new `div` element inside `.cat-left-eye` should have the class `cat-left-inner-eye`. ```js assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('cat-left-inner-eye')); ``` +The new `div` element inside `.cat-right-eye` should have the class `cat-right-inner-eye`. + +```js +assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); +``` + # --seed-- ## --seed-contents-- @@ -57,9 +75,11 @@ assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index 16b0fb43e49..00000000000 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: Schritt 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -Erstelle innerhalb des `.cat-right-eye`-Elements ein weiteres `div`-Element mit der Klasse `cat-right-inner-eye`. - -# --hints-- - -Du solltest dein vorhandenes `div`-Element mit der Klasse `cat-left-eye` nicht verändern. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -Du solltest ein `div`-Element innerhalb deines `.cat-right-eye`-Elements haben. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -Dein `div`-Element sollte die Klasse `cat-right-inner-eye` enthalten. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index 090f1b13cfc..35a631775c7 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: Schritt 43 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index aec43ca9920..6202e816a6d 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: Schritt 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Bringe das linke Auge mit einer `position`-Eigenschaft von `absolute`, einem `top` von `54px` und einem `left` von `39px` in Position. +Move the left eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `39px`. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index 48f1fef3c36..c322a4a529c 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: Schritt 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index 166374633e1..65a84a91347 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: Schritt 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index 49b9e5ebcb1..6837c3f73c6 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: Schritt 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index 382876ca89d..2289f15308c 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: Schritt 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index f04363e1110..a299df18b95 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: Schritt 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index bcc6270ef1d..e88aed0d258 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: Schritt 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index 008628cdbfe..2c2ae346552 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: Schritt 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index 310dcc91583..4a313e1e114 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -1,8 +1,8 @@ --- id: 646dec359bef3b7811fba5a6 -title: Schritt 52 +title: Step 50 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index a1d491615f8..72aa34e9655 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: Schritt 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index c32a49d3981..0eecb60684c 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: Schritt 54 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index ffba8bdb9d7..f6909c695f4 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: Schritt 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index fe17eac2cf2..6543cd6d43c 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: Schritt 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index 1445071f216..f975f4b6cff 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: Schritt 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -13,13 +13,13 @@ Erstelle ein `div`-Element mit der Klasse `cat-mouth`. # --hints-- -Du solltest ein `div`-Element erstellen. +You should create a `div` element. ```js assert(document.querySelectorAll('div').length === 13) ``` -Dein `div`-Element sollte die Klasse `cat-mouth` enthalten. +Your `div` element should have the class `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index 554b909cbb5..ec305d33f21 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: Schritt 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index 8ce8f3d8a72..ac71011e8f3 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: Schritt 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ Weise deinem `.cat-mouth-line-left`-Element unter Verwendung eines Klassenselekt # --hints-- -Du solltest einen `cat-mouth-line-left`-Selektor haben. +You should have a `.cat-mouth-line-left` selector. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index 84bcac84893..a30d9b47dc5 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: Schritt 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- @@ -11,7 +11,7 @@ Drehe die linke Mundlinie mithilfe der `transform`-Eigenschaft um `170` Grad. # --hints-- -Deine `.cat-mouth-line-left`-Eigenschaft sollte eine `transform`-Eigenschaft auf `rotate(170deg)` gesetzt haben. +Your `.cat-mouth-line-left` selector should have a `transform` property set to `rotate(170deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')?.transform === 'rotate(170deg)') diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index 5a35b7d915f..0937a8b9289 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: Schritt 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index db591bc40ba..b3f216e0598 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: Schritt 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ Drehe die rechte Mundlinie um `165` Grad. # --hints-- -Deine `.cat-mouth-line-left`-Eigenschaft sollte eine `transform`-Eigenschaft auf `rotate(165deg)` gesetzt haben. +Your `.cat-mouth-line-right` selector should have a `transform` property set to `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index 1193bbd5679..be030afb62a 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: Schritt 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index e0b0fd489c2..d1ac836880e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -1,8 +1,8 @@ --- id: 646f0ef13604420a8744f7d4 -title: Schritt 66 +title: Step 64 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index fc023b87df5..c7b72945b83 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: Schritt 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index 35e333c9b8c..161bd8b3185 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: Schritt 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index c10ba7d9756..d3055f84dce 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: Schritt 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index 00de3b2361a..b1444364cdb 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: Schritt 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index d1e7a4487e8..3acf6191012 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: Schritt 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index 541d015126d..0607422e94e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: Schritt 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index cfa81bc52d4..9ac0951f4bb 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: Schritt 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index 63bb5a37253..d0df8bfe7f7 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: Schritt 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index 50be5756ab5..cba77135985 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: Schritt 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index c6a9186998d..179f0bebab7 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: Schritt 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index 0a44bc183e9..edfc6407079 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: Schritt 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index 17f766eb307..bf039314bef 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: Schritt 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Wähle das `cat-whisker-right-middle`-Element mit Hilfe des Klassenselektors aus und bringe das rechte mittlere Katzenschnurrhaar mit der `position` `absolute`, einem `top` von `127px` und einem `left` von `109px` in Position. +Use a class selector to target the `.cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index ecd9bcf79ce..97624e65464 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: Schritt 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index 27fe44c121f..aea77c9cde3 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: Schritt 81 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index 88fdf90ade4..6ed34e96793 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: Schritt 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index a56bcaf4241..63094722125 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 Du solltest nun den Katzenkopf zentrieren. -Weise dem `.cat-head`-Element eine Positionseigenschaft zu, die auf `absolute` gesetzt ist. Lege für die `right`-, `left`-, `top`- und `bottom`-Eigenschaften einen Wert von `0` fest und setze dann ihre `margin`-Eigenschaft an allen Seiten auf `auto`. Dies ist eine Methode, ein Element vertikal und horizontal mittels CSS-Positionierung zu zentrieren. +Give the `.cat-head` element a `position` property set to `absolute`. Lege für die `right`-, `left`-, `top`- und `bottom`-Eigenschaften einen Wert von `0` fest und setze dann ihre `margin`-Eigenschaft an allen Seiten auf `auto`. Dies ist eine Methode, ein Element vertikal und horizontal mittels CSS-Positionierung zu zentrieren. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 8196194837a..e69cc4b53e7 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: Schritt 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index b9dbd4fea5f..c84422e8108 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: Schritt 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index f20b672ca50..bdf298d1ae7 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: Schritt 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index d580438988c..fb29499f6e8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index f6c08d0b1b1..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: Schritt 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Gib schließlich den Wert von `median` zurück. - -Wie die `getMean`-Funktion kannst du diesen Code in einer Zeile zusammenfassen und die Anzahl der Variablen, die du instanzierst, reduzieren. Es ist jedoch wichtig zu bedenken, dass ein kürzerer Code nicht immer besser ist. In diesem Fall würde eine Verkürzung der Codezeilen die Lesbarkeit und das Verständnis des Codes erschweren, was sich auf die künftige Wartbarkeit auswirken würde. - -# --hints-- - -Deine `getMedian`-Funktion sollte den Wert des `median` zurückgeben. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index af2f69afd3a..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: Schritt 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index b43bab2b473..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: Schritt 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 7c1a67a4a88..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: Schritt 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index 73e193de992..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: Schritt 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index 56c075aaa7f..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: Schritt 28 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index 6c2f9380b76..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: Schritt 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -Du solltest eine Konstante mit dem Namen `daysAgo` deklarieren. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index bbcd89584a0..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: Schritt 30 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index 81298dc9ae1..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: Schritt 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -Du solltest `${hoursAgo}h ago` zurückgeben. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index a8acb491cb9..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: Schritt 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -Du solltest `${daysAgo}d ago` zurückgeben. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index 12e8607f02d..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: Schritt 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -Du solltest eine Konstante mit dem Namen `thousands` haben. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index 05027fe95bf..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: Schritt 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index 92436a2ebf8..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: Schritt 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..1dd73ecc04b --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index 3d89de38950..802bfa1881f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index f6248980565..7c945772ea1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index 2035e472d58..7aa81fa594d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index 43f7a8b80ef..80dcafa84aa 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index 0298d24fed9..b2b3733a21e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md index a5938cf5b37..16c3fa1acc2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index 9fd74fd0927..26a3990c5e0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index 497096a04e9..534efe72b64 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index 3696bc0109e..619ac987c2f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index ae2d2917d7f..c7c06c02877 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index 0d19975eb6b..a72d3a76a09 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index bc1fe6e0bc8..dde43099e34 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index 0068611c60f..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: Schritt 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -Variablen kann ein Wert zugewiesen werden. Wenn du dies bei der Deklaration tust, nennt man das Initialisierung. Zum Beispiel: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Initialisiere deine `xp`-Variable mit dem Wert `0`, einer Zahl. - -# --hints-- - -`xp` sollte den Wert `0` besitzen. - -```js -assert.equal(xp, 0); -``` - -Du solltest die `xp`-Variable mit `0` initialisieren. Vergiss das Semikolon am Ende der Zeile nicht. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index b361912581c..7ede02ea563 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Erstelle eine weitere Variable namens `currentWeapon` und setze sie auf `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -Du solltest `let` verwenden, um eine Variable namens `currentWeapon` zu deklarieren. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` Du solltest camelCase verwenden, um deine Variable zu benennen. ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -Deine `currentWeapon`-Variable sollte auf `0` gesetzt sein. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` Du solltest deine Variable auf `0` initialisieren. ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index 7e5461494e7..18729b07722 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index 5e421092752..28378e1a664 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index 863ca7b7bf9..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: Schritt 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Die Variablen, die du zugewiesen hast, hatten alle Werte, die Zahlen sind. JavaScript hat mehrere verschiedene Datentypen. Das nächste Element, das du verwenden wirst, ist der String. Strings werden verwendet, um Dinge wie Wörter oder Text zu speichern. Zeichenketten werden mit doppelten Anführungszeichen, einfachen Anführungszeichen oder Backticks umgeben. Hier ist ein Beispiel für die Deklaration einer Variablen mit einem String: - -```js -let developer = "Naomi"; -``` - -Weise der `inventory`-Variable den Wert `stick` zu. - -# --hints-- - -Du solltest `inventory` auf die Zeichenfolge `stick` setzen. - -```js -assert.equal(inventory, "stick"); -``` - -Du solltest deine `inventory`-Variable mit dem String `stick` initialisieren. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index 4017f9e6f4d..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: Schritt 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -Das Inventar des Spielers in deinem Spiel wird mehrere Gegenstände enthalten können. Du wirst einen Datentyp verwenden müssen, der dies tun kann. Ein array kann verwendet werden, um mehrere Werte zu speichern. Zum Beispiel: - -```js -let order = ["first", "second", "third"]; -``` - -Dies ist ein Array, das drei Werte enthält. Beachte, wie die Werte durch Kommas getrennt werden. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -Deine `inventory`-Variable sollte ein Array sein. - -```js -assert.isArray(inventory); -``` - -Deine `inventory`-Variable sollte drei Werte haben. - -```js -assert.lengthOf(inventory, 3); -``` - -Deine `inventory`-Variable sollte den String `"stick"` enthalten. - -```js -assert.include(inventory, "stick"); -``` - -Deine `inventory`-Variable sollte den String `"dagger"` enthalten. - -```js -assert.include(inventory, "dagger"); -``` - -Deine `inventory`-Variable sollte den String `"sword"` enthalten. - -```js -assert.include(inventory, "sword"); -``` - -Die Werte deiner `inventory`-Variable sollten sich in der richtigen Reihenfolge befinden. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index b1736b8bce8..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: Schritt 14 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -Im Moment soll der Spieler nur mit dem `"stick"` beginnen. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -Your `inventory` variable should still be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should only have one value. - -```js -assert.lengthOf(inventory, 1); -``` - -Deine `inventory`-Variable sollte den String `"stick"` enthalten. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index 88d241c6718..96f41a5fa49 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index 88ceee5c3b1..4ae318337e1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index 26c3e88864c..62c9c0006a7 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index e1bf0895a63..373c28384d1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index 89df3141ef4..7a0b23eb9be 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 48bf79be242..7ceee5661cf 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index 2ad3e92d061..94f096eddf7 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index b71b2053a0b..93f47a5a403 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 04a74d6ffc4..992ecfe6447 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 6c0025271af..210c91a3c14 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index 1ce23dda9ae..57a52a36ce0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 865a7a3b829..88c454f30a8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 57c57faceaa..8dedb6bbe0a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index 242adf7b941..89c996e8fb0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index 2f5fdd7346b..414215f8674 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index 510370262d0..633b2a27373 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 3c70e9c407a..eeea631147e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index ffc05bc831f..f51b964ab29 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index dc2afa817a4..74553619257 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 21c9a125817..49ba7d6a5d1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 2d5c8b8d2ae..7635898bda0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index 7edbf5507ae..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: Schritt 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -Objekt-Eigenschaften werden als `key: value`-Paare geschrieben, wobei `key` der Name der Eigenschaft (oder der Schlüssel) ist und `value` der Wert ist, den die Eigenschaft hat. Hier ist zum Beispiel ein Objekt mit einem Schlüssel von `name`, der auf `"Quincy Larson"` gesetzt ist. - -```js -{ - name: "Quincy Larson" -} -``` - -Füge eine `name`-Eigenschaft zu deinem leeren Objekt hinzu und gib ihm einen Wert von `"town square"`. - -# --hints-- - -Dein erster Wert von `locations` sollte ein Objekt sein. - -```js -assert.isObject(locations[0]); -``` - -Dein erster Wert von `locations` sollte eine `name`-Eigenschaft haben. - -```js -assert.isDefined(locations[0].name); -``` - -Dein erster Wert von `locations` sollte eine `name`-Eigenschaft mit einem Wert von `"town square"` haben. - -```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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index 95ed3fd9bab..405e5216e1e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index 120e10418b4..783ec0f4653 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 1ecfedd5cf0..9879c9ae193 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index b9b7c630d00..5a6005628b1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index 5e71a42acff..ec7ee1d2c8f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 702236a979e..6273f830962 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 1a7ad45945e..820b0bdf431 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index b5b4e4b29da..c343d309205 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index 62259682e9b..86abd4fe34e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 4c2ac6911f1..563b6744c86 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index 45eb05dcd3c..5d1827ed9e7 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index ec01ea9195a..ebeb9e08e16 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index 246cb0ae15b..db5a60ae004 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index 17eea17ca68..a11f8620f88 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index 54324b2ac45..a2ec3a5986d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 7fdde2b1c42..bc623a35aec 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index dae70277c3d..fba49aa06b8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 81b7f49bec1..9f672a46d4a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 5b2f3c4e90d..bbb147c480d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index 72b1bab9635..229d9109447 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index 3be1dab9292..03673f7e17c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index 6733f0a82e1..7c89c1a1b80 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index 8813d1f1a1b..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: Schritt 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -Der `condition`-String ist nur ein Platzhalter. Ändere die `if`-Anweisungsbedingung, so dass sie überprüft, ob `gold` größer oder gleich `10` ist. - -Hier ist eine `if`-Anweisung, die überprüft, ob `num` größer oder gleich `5` ist: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -Deine `if`-Anweisung sollte überprüfen ob `gold` größer oder gleich `10` ist. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -Deine `buyHealth`-Funktion sollte `health` und `gold` aktualisieren, wenn `gold` größer oder gleich `10` ist. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -Deine `buyHealth`-Funktion sollte `health` und `gold` nicht aktualisieren, wenn `gold` kleiner als `10` ist. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index b67ff41e5a7..40ad971f6c0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index 7c63bfd1fba..9fde2a63ede 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index b0027ca365c..4b8ceac0042 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index acd06f87c55..f9a2be39e83 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index 25afa1b174a..c0ff85002e3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index 99066493582..9f0b801fc76 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index cdc2027fc6b..e8cbfbdcb18 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -Der Wert deiner `currentWeapon`-Variable entspricht einem Index im `weapons`-Array. Der Spieler beginnt mit einem `"stick"`, da `currentWeapon` bei `0` beginnt und `weapons[0]` die `"stick"`-Waffe ist. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -Nutze innerhalb der `buyWeapon`-Funktion Zuweisungen zum Verbinden, um `1` zu `currentWeapon` zu addieren - der Benutzer kauft die nächste Waffe im `weapons`-Array. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -Du solltest eine zusammengesetzte Zuweisung verwenden, um eine zu `currentWeapon` hinzuzufügen. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -Deine `buyWeapon`-Funktion sollte `currentWeapon` um `1` erhöhen. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Dein Code sollte in deiner `if`-Anweisung stehen. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index f1e45af445d..1bd4b3f4533 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Change your `currentWeapon` assignment to use the increment operator. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -Du solltest den Erhöhungs-Operator verwenden, um `currentWeapon` um `1` zu erhöhen. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -You should not use compound assignment to increase `currentWeapon` by `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 0ae51f5963d..a24f1547e81 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 555062b8a52..22a1593206f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 16225d9916a..3d2b98c6144 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Verwende die Klammer-Notation, um auf ein Objekt innerhalb des Arrays `weapons` zuzugreifen und weise es deiner Variable `newWeapon` zu. Setze die Variable `currentWeapon` in die Klammern. +Verwende die Klammer-Notation, um auf ein Objekt innerhalb des Arrays `weapons` zuzugreifen und weise es deiner Variable `newWeapon` zu. Place the variable `currentWeaponIndex` within the brackets. When you use a variable in bracket notation, you are accessing the property or index by the *value* of that variable. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -Du solltest `newWeapon` so aktualisieren, dass sie einen Wert von `weapons[currentWeapon]` hat. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index f5711e5bd18..c3ed1bd54ad 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` ist ein Objekt. Verwende die Punktnotation, um die `name`-Eigenschaft des Objekts zu erhalten. +`weapons[currentWeaponIndex]` is an object. Verwende die Punktnotation, um die `name`-Eigenschaft des Objekts zu erhalten. # --hints-- -Du solltest `newWeapon` so aktualisieren, dass sie einen Wert von `weapons[currentWeapon].name` hat. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 245880a1806..7fa615ce2d2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 3639035a8cf..a2ba8ab9569 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ Deine `buyWeapon`-Funktion sollte den Wert der `newWeapon` zum `inventory`-Array ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index 27272899add..f78fd95e3ea 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index 4f9e91d1388..4c26d3d221e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index 4a9ee887cc4..c7d1016df39 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index c8734e42819..9f004b94f23 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Sobald ein Spieler die beste Waffe besitzt, kann er keine andere Waffe kaufen. Wrap all of the code in your `buyWeapon` function inside another `if` statement. Die Bedingung sollte überprüfen, ob `currentWeapon` kleiner als `3` ist - der Index der letzten Waffe. +Sobald ein Spieler die beste Waffe besitzt, kann er keine andere Waffe kaufen. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -Du solltest eine neue `if`-Anweisung haben, die sicherstellt, dass `currentWeapon` kleiner ist als `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` Deine vorhandene `if`-Anweisung sollte sich innerhalb deiner neuen `if`-Anweisung befinden. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); Deine vorhandene `else`-Anweisung sollte sich innerhalb deiner neuen `if`-Anweisung befinden. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index 2bd37866073..6dc389df856 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Arrays haben eine `length`-Eigenschaft, die die Anzahl der Elemente im Array zurückgibt. Möglicherweise möchtest du dem `weapons`-Array in Zukunft neue Werte hinzufügen. -Verändere deine `if`-Bedingung, um zu überprüfen, ob `currentWeapon` kleiner ist als die Länge des `weapons`-Arrays. Zur Überprüfung der Länge eines Arrays `myArray` könnest du beispielsweise `myArray.length` verwenden. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. Zur Überprüfung der Länge eines Arrays `myArray` könnest du beispielsweise `myArray.length` verwenden. # --hints-- @@ -19,10 +19,10 @@ Du solltest die `length`-Eigenschaft beim `weapons`-Array verwenden. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -Deine `if`-Anweisung sollte überprüfen, ob `currentWeapon` kleiner ist als `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index e16a8da4abf..5f804c130d3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -The `currentWeapon` variable is the index of the `weapons` array, but array indexing starts at zero. Der Index des letzten Elements in einem Array ist einen Wert kleiner als die Länge des Arrays. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. Der Index des letzten Elements in einem Array ist einen Wert kleiner als die Länge des Arrays. Ändere die `if`-Bedingung so, dass sie `weapons.length - 1` statt `weapons.length` überprüft. @@ -23,10 +23,10 @@ Du solltest die Bedingung aktualisieren, um `1` von `weapons.length` zu subtrahi assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -Deine Bedingung sollte überprüfen, ob `currentWeapon` kleiner als `weapons.length - 1` ist. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 3e6b0e8ff8a..5e9b7795618 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap Du solltest deinen `text.innerText` zu `"You already have the most powerful weapon!"` innerhalb deiner äußeren `else`-Anweisung ändern. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 8461293e293..e025bb4d7a9 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 991c10a6f31..16507cc56ff 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index 27606499234..dcb283e9e13 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 2d74d4408f4..6f5e44647b6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index d48717165d3..137ef1d6927 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Beachte, dass du bereits eine `currentWeapon` in deinem Code hast. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 0419bc89277..3e3f62268de 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index ed31c707fec..93551f2ecf6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Verwende den Verkettungsoperator, um dies in derselben Zeile zu tun. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Verwende den Verkettungsoperator, um dies in derselben Zeile zu tun. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` Dein `text.innerText` sollte auf den richtigen String aktualisiert werden. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index 1ab4b47a010..06db118805d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index 3d8366e5dbc..1aa5f69c795 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index ca4e8578e45..62d4957aa60 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 91c803f786d..1aa2d8b2e07 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index 83aaefd67b1..d54f851d9fb 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index b187ed9468c..0eca0198285 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 37dcfcbea3a..38365a073fb 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index c64c3f57194..c99f4e7d252 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 135f1d62502..f2c4ad154b8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index ad094867f4b..7c95a40f157 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index 427ee8c2a87..0e7bd2a2720 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 0ee66d1e3ba..36621ce380a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index 852a7696e36..b04a8db88bd 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index 5d2c807e3a5..6ca72668cac 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -Du solltest den Verkettungsoperator verwenden, um die aktuelle Waffe zum String hinzuzufügen. Du solltest den aktuellen Wert mit `weapons[currentWeapon].name` erhalten. +Du solltest den Verkettungsoperator verwenden, um die aktuelle Waffe zum String hinzuzufügen. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index 9bdddcc9c15..8bba5c8f188 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index 1c5b667751d..1e87ed64043 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Mit diesen kannst du eine Zufallszahl innerhalb eines Bereichs erzeugen. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ Du solltest die gleiche `monsterHealth`-Zeile verwenden, die du bereits geschrie assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -Du solltest den `weapons[currentWeapon].power`-Wert erhöhen. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` Du solltest `Math.floor()` verwenden. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? Du solltest das Ergebnis von `Math.floor(Math.random() * xp) + 1` zum Ergebnis von `weapons[currentWeapon].power` hinzufügen. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index 1ac14ad9919..21516e5933b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index 1a9b0d34693..c9b25debfd5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index 0dbb4ad4a6e..9372e92cf2c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 44fb8a4768e..b8987507eac 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index d872d17684e..1e07f4b9f55 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index dd278fd6d52..14f5f68e88f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index ac8940e2baf..f479b2cb049 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 35085259045..fd76439f6b3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index eeef8e0b1c8..c485c6ea9af 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index c76bfcfe4c6..a8aca88e74b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index b68e6ffc880..5b30fdf28ba 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 5979b512ae3..509251fb1ab 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 14889c1a46e..846e90227a3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 938ace7ec36..788f35bf913 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeapon` to `0`, and set `inventory` to an array with the string `stick`. +At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Also update the `innerText` properties of `goldText`, `healthText`, and `xpText` to their current values. @@ -39,10 +39,10 @@ Deine `restart`-Funktion sollte `gold` auf `50` setzen. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -Deine `restart`-Funktion sollte `currentWeapon` auf `0` setzen. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 945f6324c7d..15baeab4504 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index 1fca66553f0..ea37ac0b3d5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index 648c0b8af54..851dfda0949 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 737e5a1a247..41faa44d5ef 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 3fb180528d9..1567bf3a9a8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index f9baa858b3e..8b78f4202c7 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index b4f1daf80a0..f945040ccab 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index 9ac019e464d..7194de8da02 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index 5c29c1138ea..c4fd446db47 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 1b7a89f353f..632abe728dd 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index 4c7363d5341..7da1800af5e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ Move your `monsterHealth` assignment into your `if` block. # --hints-- -You should move your `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` into your `if` block. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index a1775d7543b..e6ce6f4616a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct You should add an `else` block after your `if (isMonsterHit())` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index 1b9384de685..89b70f7c1b3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 0ac24509b55..5d076a53bb8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 2c37da67cb0..a64294ce059 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 308f53fd795..9e1a123a719 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 0aecde7e233..28d47dffdff 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Decrement the value of `currentWeapon` in your `if` statement, after you update the text. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ You should use the decrement operator. assert.match(attack.toString(), /--/); ``` -You should decrement `currentWeapon` in your `if` statement. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index 602e6f8d9a0..75fa2adcfcc 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index 84e6671d449..0ab02c6d783 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index f2c2ae3c598..705c25660dd 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index a2b09efb981..25ea3112779 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index d2d63aefaab..fec11707692 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index ae21c052d6e..7f603982c95 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index ae684c199ed..1197a84fcc3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index b88a1d26a9b..653d4b38084 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index 1ef1456647a..af13af000e3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 1eb6aa4c1f1..ee1f17b327b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index a40ade24873..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -`for`-Schleifen werden mit drei durch Semikolon getrennten Ausdrücken deklariert. `for (a; b; c)`, where `a` is the initialization expression, `b` is the condition, and `c` is the final expression. - -Der Initialisierungsausdruck wird nur einmal ausgeführt, bevor die Schleife beginnt, und wird häufig zur Definition und Einrichtung der Schleifenvariablen verwendet. Think of it like declaring a counter to use in your loop. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -Du solltest deine Initialisierung in der `for` -Schleife so ändern, dass sie `let i = 0;` lautet. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index 346adeb6fa0..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -The second statement in a `for` loop, the condition statement, is evaluated at the beginning of every loop iteration. The loop will continue as long as the condition evaluates to be true. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -You should update your condition statement to be `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index 1dd28e8ad74..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -The last statement in a `for` loop, the final expression, is executed at the end of each loop iteration. - -Since we changed the initialization statement to use `i` instead of `x`, change `x++` to `i++`. This will increment the initializer `i` by 1 after each loop. - -# --hints-- - -You should change your final expression to `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index dc3281ffd77..d8597202d44 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 5d2de454974..5c01ee608a2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index 659e9a1e4b1..51a72303ff2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index b0868a55bf0..3b46e0900dc 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 650fe59ddd1..d5cf53b8ad6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index ebf70ca3d06..4f1db2ae242 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index 421d8c134de..a6d5fccc9cc 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index b4fd181b22f..adb3c9cb653 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index f0978d9f11e..e2a20f27ac0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index 28afa971668..832ed63ccc4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index c1a5e0a80eb..a35743cdf87 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index cfd82a89088..b8adbe4fc83 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index 9b91a6552d1..0485ad1debf 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index 320b1f92bbf..5c0a9139fe0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index 2016fa935d0..4d95588df60 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -Du solltest eine `cleanInputString`-Variable deklarieren. -```js -assert.isDefined(cleanInputString); -``` -Deine `cleanInputString`-Variable sollte eine Funktion sein. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index e99fc070c32..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: Schritt 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -Du musst deinen `str` in einzelne Zeichen aufteilen. Du kannst dazu die split()-Methode verwenden. - -Die `split()`-Methode teilt einen String in ein Array von Teilstrings und gibt das neue Array zurück. Du kannst ein optionales Trennzeichen übergeben, das der Methode mitteilt, wo jede Aufteilung stattfinden soll. - -Wenn du zum Beispiel einen leeren String an die `split`-Methode übergibst, wird der String in ein Array aus einzelnen Zeichen zerlegt. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Zerlege den an die `cleanInputString`-Funktion übergebenen String in ein Array aus einzelnen Zeichen und weise es einer Variablen namens `strArray` zu. - -# --hints-- - -Deine `cleanInputString`-Funktion sollte eine `strArray`-Variable deklarieren. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Deine `strArray`-Variable sollte dem Wert von `str.split('')` zugewiesen werden. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index fb97d64dbeb..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: Schritt 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Deklariere eine `cleanStrArray`-Variable und weise ihr ein leeres Array zu. Du wirst dies verwenden, um deine gültigen Zahlenzeichen zu speichern. - -# --hints-- - -Deine `cleanInputString` sollte eine Variable namens `cleanStrArray` deklarieren. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Deiner `cleanStrArray`-Variable sollte ein leeres Array zugewiesen werden. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index a71dfcf8b12..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: Schritt 21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Verwende eine `for`-Schleife, um jedes Zeichen in deinem `strArray`-Array zu durchlaufen. - -# --hints-- - -Deine `cleanInputString`-Funktion sollte eine `for`-Schleife enthalten. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Deine `for`-Schleife sollte eine `i`-Variable auf `0` initialisieren. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Deine `for`-Schleife sollte eine Bedingung haben, die prüft, ob `i` kleiner ist als die Länge von `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Deine `for`-Schleife sollte `i` bei jedem Durchlauf um `1` erhöhen. Verwende dazu den Inkrement-Operator. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index fb9ee2ddfd1..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: Schritt 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Du musst prüfen, ob das Array `["+", "-", " "]` nicht das aktuelle Zeichen enthält. Dazu kannst du eine Kombination aus der includes()-Methode und dem !-Operator verwenden. - -Die `.includes()`-Methode gibt `true` zurück, wenn das Array das Zeichen enthält, und `false`, wenn nicht. Der logische NOT-Operator (`!`) wird das Gegenteil des Wertes der `.includes()`-Methode zurückgeben. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). Ist dies nicht der Fall, wird `push` in das `cleanStrArray` übertragen. - -# --hints-- - -Deine `for`-Schleife sollte eine `if`-Anweisung enthalten. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Deine `for`-Schleife sollte `!["+", "-", " "].includes()` verwenden. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Deine `for`-Schleife sollte `push` `strArray[i]` zu `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index e275232f807..aee9f409834 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Beginne mit der Erstellung einer Funktion namens `isInvalidInput`, die einen ein # --hints-- -Du solltest eine `isInvalidInput`-Variable deklarieren. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` sollte eine Funktion sein. ```js diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index ef6066efb95..a3c0baa24f8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Dein nächster Schritt besteht darin, den Nutzern die Möglichkeit zu geben, Ein # --hints-- -Du solltest eine `addEntry`-Variable deklarieren. - -```js -assert.isDefined(addEntry); -``` - -Deine `addEntry`-Variable sollte eine Funktion sein. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index d90798583b0..ac72cff5f7a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; Variable naming follows specific rules: names can include letters, numbers, dollar signs, and underscores, but cannot contain spaces and must not begin with a number. -Declare a `character` variable in your code. +Use the `let` keyword to declare a variable called `character`. _Note_: It is common practice to end statements in JavaScript with a semicolon. `;` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index a9c506495a9..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: Schritt 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Jede Aufgabe sollte außerdem eine einzigartige `id` besitzen. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -Du solltest `const` verwenden, um eine `taskObj`-Objekt zu erstellen. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index 13dde03286d..00000000000 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: Schritt 15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -To check if the `Object.freeze()` method is working, you can try to assign a new value to one of the existing properties. - -Below the `Object.freeze(myFavoriteFootballTeam)`, assign the `USA` string to `myFavoriteFootballTeam.team`. Below that, add a `console.log` for `myFavoriteFootballTeam.team`. - -When you open up the console, you will see an `Uncaught TypeError` message. This error appears because the `Object.freeze()` method does not allow you to overwrite that value. - -# --hints-- - -You should assign the `USA` string to `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -You should add a `console.log` for `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index 67ae0f871d6..f33c7609e92 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index 446ab8fe92d..c7753a466ca 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 38cb37152ce..6c689759efb 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index 55af8d99d86..6a41ad22602 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index 51ca19017fb..0a936a6a736 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index 897d5b8b301..48e4138da4e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index 515a9ae8e70..439e7c524db 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index beb77c0b9bc..69b32aa6e41 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index 0c5129ca632..681abfa0f3c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index 5e803c5831b..7f5ca85445e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index 3c5137ee4bd..b4b75e0cd0f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index f2cfb3c3f43..ff53345f07f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index a764950fe55..6fd6466c41f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index 4c8c59ea777..36dca0db207 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index a92507d6ed2..96538f7b936 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index 3590b86d37d..50f37e865b3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index c7921442436..0ea5b92b3ce 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index 7b075f456f7..d4dc5e85bc3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index c1509021571..18602357a2b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index 3a0841bb361..cade94d2ee0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index 02f2e26ec16..b30927a3630 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index 81708bb9af7..e3c08777a23 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index 2d5f2a1d677..360e4615e12 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index cde7db93ebd..2ddd3fbb9b1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index fb8c4f1bbf2..22b5d6e49b8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index 36caae2f736..b606e55e748 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index 01d8e58e450..b03407a6fa6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 927a5dd51ac..0055b05c1c9 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index da4a353ae26..45849eb578a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index 979f56e58a8..6b9e19b0aea 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index e77d42c91b5..7d5474fd7fe 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index 2fce4292828..93e3445ff1f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index 8206ef3de8a..ac848181ccf 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index 98527b3a56d..9bdba6d8916 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index f3bcb935d7d..1dae752abc5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index 5681c4a2497..8b4662abde4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index b32a7f6db91..369b19d7fa8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index c401e01ddf4..43314fe3af1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index 3393dc3adff..c16fed724b0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index d23df3fa717..a2b9c507648 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index 654408b49a2..63a7ef41939 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index 1f1241d5805..90567b7ff16 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index 09b41ea7f40..c74e1583731 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index f24a9e79381..ac2f5a399a3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 29b7dd92bbf..5cca20572a2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index 9f8613537eb..100bc99421a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index a276ada4172..234d6ccf96d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index f62831a67c0..6469d0d5dda 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index aa5721760a1..64fc2b61f51 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index c46558aed7a..b820406d66f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index 0ba7546d3cf..1d55cdca3d8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 01f36147e1d..23907e1ae47 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index 11def885e6d..d41172ae7c4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 7b9315f2463..78a08340c57 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index 4ea10d63f9c..2847923363c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index 4fe132341c9..34a2dfe38cf 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index 37957b449a4..f612567a7f1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index 8e676da2b72..9ebade35a34 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index ac3f548ff0b..0cbccf0ed24 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index 60dce7cb432..116759fee44 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index 3f90d0b37eb..1d9badc54e1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index 923baa1aeb6..682b37d92f6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index e3c9325230d..c4165dd1e74 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index 551fa4a6b18..ccc80527488 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index 9395df245de..ab2c5de25fa 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index 87e5fa16fc8..44381b704d8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index 9cfd05e8ae6..3248c5514d6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index a47e94f038a..d8edee1be9a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index dc67d497894..552e78258a4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index 51178fdf750..307fc0bc1a3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index e5c594fbc83..9d4d9d470b0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index f62c486377a..8136e09940c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 65bf9c45d90..9c13cc24010 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index fa2b1b87140..cebcd1c97a9 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index 661b0080d1f..50b6f7ad520 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index cedb2688ba7..19ea783b3ef 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index 96bbbf813b8..8697a04af8c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index 853048d3bcd..c522445e5a5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index 11a72c0f909..541743d488e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index f3308a12031..6fb5c69c57c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 896da8841cc..17ea85e8f4b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index 8cdf7d67df1..705f5299b1d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index ed734f22c81..28fe2953dac 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index 27bc5939a43..3b5d3f4a549 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index 8b6eb578e7f..326dcf838c8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index 3788f395f40..1a94a7eb050 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index 4160f960c05..79b064e6a56 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index 8d56d70f97e..d7c1f5d8cf4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index 17414ba0a3c..75920e14c03 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 82394db9066..580b27759da 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index 8d7b4ed55b5..24b6470afe5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index 97e2ee1385b..47ae9a91619 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index 2db45bdf177..37247efec82 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index 1cc8d3ecf73..c1fd104d0f4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index 9732d8a1cf4..1c230427974 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index 4f2eb4a9a83..211621c85e8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index 004281dff6a..d00bee9ffbb 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index 002e0238599..38a5ca5c4e6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index 5eb1f960c68..5178eb1a9f7 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index 29feb0cf613..bbc45daaa21 100644 --- a/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Working with Text Question H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index 05765087c87..75fc123e8a2 100644 --- a/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Working with Text Question I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index e496b6b12a8..35c0cd937ec 100644 --- a/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/german/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Working with Text Question J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/german/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/german/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 1b0b2f0c67b..a7d3c17eaa5 100644 --- a/curriculum/challenges/german/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/german/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index ee929b10d11..a7d85274678 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialog 2: Tom trifft den Kollegen neben Ihm" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index 206dab189e2..a140dfe36ca 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Aufgabe 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index 3d499c0c3e8..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialog: Platzhalter" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Sieh dir das Video oben an, um den Kontext der kommenden Lektionen zu verstehen. - -# --Auftrag-- - -Schaue das Video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 22c0b358fb9..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --sentence-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## -blanks-- - -`didn't` - -### --Feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --Feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index 4cfea2e32ad..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index 01a821849d6..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 6a3c172f152..70d2b0cd3a8 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 18281b000cf..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..7f272358313 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index 83be2d4ed49..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 18a88eaced2..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index 820cb52a43f..54037a26eae 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 42ca728c289..4bcb90e0553 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index 92f2a6fcd6f..1fd89132081 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 69af92d5224..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index f42cfcaba78..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index 8e55bc48307..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..c2978af6438 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index ddd799a4b67..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index 8918c239b45..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..e5571f08f36 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..ea4e9a66215 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index 9780962b91e..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 26d46d16ba7..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index f6b7dc93921..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index 081ab59374a..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index abe76517d2a..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..6947fe048c2 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..e05448d9d48 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Task 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..aaa7a3890de 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Task 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..ea5416f070f 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Task 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..91066451909 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Task 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..109deef84e4 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Task 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..5bd0b159b4a 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Task 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..527d24103b0 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Task 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..b536269cb5a 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Task 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..9ea5dfd2ec2 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Task 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..0031c5026bb 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Task 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..dc9412ebb8f 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Task 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..53772f4f629 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Task 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..564de6f07b1 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Task 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1f031ee3f1e 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Task 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..f2d572900d8 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Task 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..4b818dc4a70 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Task 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..707eb0d122d 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Task 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..e117e9317d8 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Task 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..5b4096f746c 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Task 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..7221646546e 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Task 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..03428f51432 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Task 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..287f03ddd1e 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Task 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..1538fbae725 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Task 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..331abe3703f 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Task 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..93862c576dc 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Task 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..5afcfa7c916 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Task 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..7937868764f 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Task 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..bf7fa023589 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Task 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..304a2c583d8 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Task 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..98e230933ca 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Task 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..054af388b35 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Task 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..3a5f7c3594b 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Task 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ff7dad74588 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..d41cb232f9c 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Task 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..a29433a1b9a 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Task 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..d29b5313cd6 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Task 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..aa9a85fb288 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Task 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..7eed555b4e1 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Task 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..fd66f011103 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Task 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..198f4c0b6e9 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Task 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..db488ae0a03 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Task 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..fcebb2960ea 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Task 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..b3152c55726 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Task 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..921551d84e0 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Task 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..778df3691d7 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Task 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..cf208824a34 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Task 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..7d49d97efb2 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Task 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..924dc459772 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..32c51e43652 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Task 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..bb730a97243 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Task 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..b96607f08e3 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Task 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..1649db7e147 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Task 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..4d1c3371618 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Task 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..7161861383e 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Task 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..000ef53d2ef 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Task 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..f9abd0109a4 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Task 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..b13756997fc 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Task 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..2de180a58c7 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Task 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..0866794a4e5 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Task 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..610f7a26d7a 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Task 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..185183a0410 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Task 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index ab2101ff95b..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index 544a6ec272f..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index d790b556429..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 65a943cf23a..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index 7839f113020..00000000000 --- a/curriculum/challenges/german/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --Auftrag-- - -Watch the video diff --git a/curriculum/challenges/italian/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/italian/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index b891883d61c..cc76310327c 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/italian/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: Usare il tag s per barrare il testo challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index 98dc20cc212..3b4829da4dd 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: Migliorare la compatibilità con i fallback del browser challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index 8bfa241a4ce..f13c1f61805 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: Assegnare il valore di una variabile ad un'altra challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index 1ab5ce99b47..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: Step 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index 872f776e28a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: Passo 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index 22c0328871a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: Step 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index a2c396cbf8c..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: Step 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index e2a3fcdd2df..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: Step 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index 2d4b4108590..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: Step 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index 438bf8be621..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: Step 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index 835e65c1a70..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: Step 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index bca25bc2859..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: Step 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index 55052e07460..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: Passo 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index ac974c93572..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: Step 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index f5829fd8ea1..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: Step 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index 28b1c0bbfc1..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: Step 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index e7c0ed05dac..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: Step 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index 2a71df08467..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: Passo 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index 950b2d70fe9..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: Step 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index 2635e36727f..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: Passaggio 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index 9b6b8661a06..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: Step 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index 9e5cb541759..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: Passo 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index 407e36ed978..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: Step 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index 058613246b5..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: Step 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index 9a3ff1a7cf7..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: Step 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index ced1d4b3e99..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: Step 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index 16d3fd31223..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: Step 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index c6beffc62dd..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 960dfceced4..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index afb8c4a449a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: Step 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index e01f85171de..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: Step 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index 2a0e5c16f85..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: Step 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index 2281e4ebd04..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: Step 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index 4fd9d1a0755..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: Passo 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index 416a3ab59c9..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: Step 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index 5a320577312..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: Step 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index a20280d43cd..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: Step 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index 8b70a089c7b..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: Step 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index c054dc666aa..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: Step 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index f155b422817..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: Passo 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index 2a785397b1f..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: Step 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 534a8311a44..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: Step 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index 55a3658da64..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: Step 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index 5fe90adbdc7..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: Step 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index 987439b3597..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: Step 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index 6d564ac5635..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: Step 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index 8f56685f2ed..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: Step 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index 8d9c209664b..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: Step 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index ddc5eec1c84..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: Step 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index 296ab9b40db..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: Step 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index eaf484fab25..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: Step 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index ace687c55ee..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: Step 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index 9464102534b..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: Step 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index e4169f71483..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: Step 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 609f58fae3b..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: Step 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index 0cf33878b57..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: Step 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index 0e7f49b8fde..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: Passo 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index 504b476d95c..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: Passo 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index 0f21e34ca39..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: Step 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index 1f7a21c13c8..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: Step 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index 572d2ae8f39..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: Step 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index 2925f57e7f4..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: Step 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 61bdd5e0828..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: Passo 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index d0d28f4596d..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: Step 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index bfb9db89a21..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: Step 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index 25d9d4bf2dd..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: Step 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index 7f13c3013f4..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: Step 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index 5baea324998..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: Step 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index 122322a6da0..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: Step 66 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index b82ed6ddc68..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: Step 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index 26274fd86e8..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: Step 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index 946cd2d9c0c..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: Step 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index 3d3aab8d861..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: Step 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index c33d46799f2..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: Step 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index f601bb35c6d..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: Step 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index 966091151e5..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: Step 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index 937d3bdd45a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: Step 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index a89e4b72866..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: Step 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index 6469a783c80..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: Step 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index ea4c5869ec2..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: Step 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index f366526d17a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: Step 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index f8f9ea51048..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: Step 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index f2392be1fac..7c757e3d835 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -1,6 +1,6 @@ --- id: 65821c1c40ccac44adf38e6b -title: Step 2 +title: Passo 2 challengeType: 20 dashedName: step-2 --- @@ -36,7 +36,7 @@ You should assign an empty list to the `expenses` variable. ```py def add_expense(expenses, amount, category): pass - + --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index 75485fdd124..73641d49305 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -41,7 +41,7 @@ Your `print_expenses` function should take a single parameter `expenses`. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index 46a26e45ab9..bbc053b88ad 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -36,7 +36,7 @@ You should have `pass` only inside your loop body. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + --fcc-editable-region-- def print_expenses(expenses): pass diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index d8e1f7d2e9f..a174cc5080d 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -32,7 +32,7 @@ You should not have `pass` inside your loop body. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + --fcc-editable-region-- def print_expenses(expenses): for expense in expenses: diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index 3fa3fb568b9..5b3d7e8c901 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -36,7 +36,7 @@ You should pass `f'Amount: {expense["amount"]}, Category: {expense["category"]}' ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + --fcc-editable-region-- def print_expenses(expenses): for expense in expenses: diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index ab3e2f9fc07..9dcd34fd44e 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -1,6 +1,6 @@ --- id: 65823040bdb32949d4c1a96f -title: Step 10 +title: Passo 10 challengeType: 20 dashedName: step-10 --- @@ -41,7 +41,7 @@ Your `total_expenses` function should take a single `expenses` parameter. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index 6e9189ed3f0..222a61984b9 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -38,14 +38,14 @@ You should assign `lambda x: x * 2` to your `test` variable. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582352cbdbcde4d0c4f7b0b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582352cbdbcde4d0c4f7b0b.md index 60685d4ceba..ff500947680 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582352cbdbcde4d0c4f7b0b.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582352cbdbcde4d0c4f7b0b.md @@ -26,14 +26,14 @@ You should have `print(test(3))` in your code. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index 59eb3e3c77b..f7a3f166851 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -17,7 +17,7 @@ The function to execute is passed as the first argument, and the iterable is pas The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- @@ -34,14 +34,14 @@ You should have `print(map(test, [2, 3, 5, 8]))` in your code. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(test(3)) diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index d9226ae6d34..0d904e4d542 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -26,14 +26,14 @@ You should print `sum(map(test, [2, 3, 5, 8]))`. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(list(map(test, [2,3,5,8]))) diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index c7358d25594..0c4b5191a9a 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -26,14 +26,14 @@ You should delete your `test` variable and the related `print()` call. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(sum(map(test, [2, 3, 5, 8]))) diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index b056b0bb531..af93b0e12fc 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -32,11 +32,11 @@ You should not have `pass` in your `total_expenses` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + --fcc-editable-region-- def total_expenses(expenses): pass diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index 9c4390b4669..c06ab93c264 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -36,11 +36,11 @@ You should pass the `expenses` list as the second argument to the `map()` call. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + --fcc-editable-region-- def total_expenses(expenses): lambda expense: expense['amount'] diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index 9ff07605fac..29c09ae0262 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -24,11 +24,11 @@ You should call the `sum()` function passing it your current `map()` call as the ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + --fcc-editable-region-- def total_expenses(expenses): map(lambda expense: expense['amount'], expenses) diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index da444c85097..63af9be4151 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -39,14 +39,14 @@ Your `filter_expenses_by_category` function should take `expenses` and `category ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index 92b7c92c01d..289c306da64 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -30,14 +30,14 @@ You should not have `pass` inside the `filter_expenses_by_category` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + --fcc-editable-region-- def filter_expenses_by_category(expenses, category): pass diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index fe47ee9f3f2..fc8cab1fff0 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -The `filter()` function allows you to select items from an iterable, such as a list, based on the output of a function: +The `filter()` function allows you to select items from an iterable, such as a list, based on the output of a function: ```py filter(my_function, my_list) @@ -15,7 +15,7 @@ filter(my_function, my_list) `filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. -The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. @@ -46,14 +46,14 @@ You should pass `expenses` as the second argument to the `filter()` call. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + --fcc-editable-region-- def filter_expenses_by_category(expenses, category): lambda expense: expense['category'] == category diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index 99c08f3e7d1..f0f6c12e365 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -24,14 +24,14 @@ You should return the result of the `filter()` call from your `filter_expenses_b ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + --fcc-editable-region-- def filter_expenses_by_category(expenses, category): filter(lambda expense: expense['category'] == category, expenses) diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index a2f8efceb9a..cae351eee31 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -38,14 +38,14 @@ You should move the `expenses` list inside the `main()` function body. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) --fcc-editable-region-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 5471bb36c92..23b116aea50 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -37,19 +37,19 @@ You should print `'\nExpense Tracker'` in your `while` loop. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) --fcc-editable-region-- def main(): expenses = [] - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index 97d773f5cb8..150c7896f1d 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -7,7 +7,7 @@ dashedName: step-26 # --description-- -The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. +The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. @@ -30,14 +30,14 @@ all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) @@ -46,6 +46,6 @@ def main(): --fcc-editable-region-- while True: print('\nExpense Tracker') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index bee24b42de5..a557268c2db 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -28,14 +28,14 @@ all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) @@ -45,6 +45,6 @@ def main(): while True: print('\nExpense Tracker') print('1. Add an expense') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index 132862fc6fe..662e4d59211 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -48,14 +48,14 @@ all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) @@ -66,6 +66,6 @@ def main(): print('\nExpense Tracker') print('1. Add an expense') print('2. List all expenses') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index 392024966fb..6c5f7e20351 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -34,17 +34,17 @@ You should assign the result of the `input()` function, with the string `'Enter ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + --fcc-editable-region-- def main(): expenses = [] @@ -55,6 +55,6 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 240d01654e0..8f20aa4cf58 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -45,17 +45,17 @@ You should assign an empty `input()` call to your `amount` variable. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + --fcc-editable-region-- def main(): expenses = [] @@ -66,7 +66,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index 6d76794bd32..15f326cb257 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -27,17 +27,17 @@ You should pass `'Enter amount: '` to the `input()` call assigned to the `amount ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] while True: @@ -47,7 +47,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- if choice == '1': diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index 8818d086821..275d3f75aac 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -27,17 +27,17 @@ You should pass `input('Enter amount: ')` to the `float()` function in the assig ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + --fcc-editable-region-- def main(): expenses = [] @@ -48,9 +48,9 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') - + if choice == '1': amount = input('Enter amount: ') --fcc-editable-region-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index 520834f9bfc..0249ed79c87 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -30,17 +30,17 @@ You should assign `input('Enter category: ')` to your `category` variable. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -51,11 +51,11 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- if choice == '1': amount = float(input('Enter amount: ')) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index 2923664b6db..fd25bf41ee6 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -9,7 +9,7 @@ dashedName: step-34 Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. -After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. +After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. - `expenses` is the empty list created in the main function earlier in this project. - `amount` is the amount of the expense. @@ -42,17 +42,17 @@ Your `add_expense()` call should come after the assignment of `amount` and `cate ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -63,12 +63,12 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- if choice == '1': amount = float(input('Enter amount: ')) category = input('Enter category: ') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index 50cb2f6a557..7ca152b9bde 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -35,17 +35,17 @@ You should print `'\nAll Expenses:'` inside your `elif` clause. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -56,13 +56,13 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- if choice == '1': amount = float(input('Enter amount: ')) category = input('Enter category: ') add_expense(expenses, amount, category) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index 28de93f6f77..0bc3402cf58 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -30,17 +30,17 @@ You should pass the `expenses` list as the argument to your `print_expenses()` c ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -51,7 +51,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -61,6 +61,6 @@ def main(): --fcc-editable-region-- elif choice == '2': print('\nAll Expenses:') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index 1322922a208..6c1297bc068 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -7,7 +7,7 @@ dashedName: step-37 # --description-- -To show the total expenses, create an `elif` statement that checks if `choice == '3'`. +To show the total expenses, create an `elif` statement that checks if `choice == '3'`. If it's true, it means the user wants to see the total expenses. So call `print()` and pass the string `'\nTotal Expenses: '` as the first argument and `total_expenses(expenses)` as the second argument. @@ -35,17 +35,17 @@ You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `e ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -56,7 +56,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -67,6 +67,6 @@ def main(): elif choice == '2': print('\nAll Expenses:') print_expenses(expenses) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index 9436b4f73c1..676b0ec42f7 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -39,17 +39,17 @@ You should assign `input('Enter category to filter: ')` to your `category` varia ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -60,7 +60,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -74,6 +74,6 @@ def main(): --fcc-editable-region-- elif choice == '3': print('\nTotal Expenses: ', total_expenses(expenses)) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index c771cc30551..d354cb667cb 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -24,17 +24,17 @@ You should print `f'\nExpenses for {category}:'` after the assignment of `catego ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -45,7 +45,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -62,6 +62,6 @@ def main(): --fcc-editable-region-- elif choice == '4': category = input('Enter category to filter: ') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index 5a529fbe4bd..669de4ae215 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -36,17 +36,17 @@ Your `expenses_from_category` variable should come after the `print()` call. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -57,7 +57,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -75,6 +75,6 @@ def main(): elif choice == '4': category = input('Enter category to filter: ') print(f'\nExpenses for {category}:') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index 746e7779537..4801aa6d338 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -30,17 +30,17 @@ Your `print_expenses()` call should come after the `expenses_from_category` vari ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -51,7 +51,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -70,6 +70,6 @@ def main(): category = input('Enter category to filter: ') print(f'\nExpenses for {category}:') expenses_from_category = filter_expenses_by_category(expenses, category) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index 76316b1ba48..911a95cf962 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -35,17 +35,17 @@ You should print `'Exiting the program.'` in your new `elif` clause. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -56,7 +56,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -76,6 +76,6 @@ def main(): print(f'\nExpenses for {category}:') expenses_from_category = filter_expenses_by_category(expenses, category) print_expenses(expenses_from_category) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 465c1008e5a..712c3072018 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -24,17 +24,17 @@ You should have a `break` statement after the `print()` call inside your last `e ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -45,7 +45,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -68,6 +68,6 @@ def main(): --fcc-editable-region-- elif choice == '5': print('Exiting the program.') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index b8403971842..f2fec123e71 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -26,17 +26,17 @@ assert.match(code, /^main\s*\(\s*\)/m) ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -47,7 +47,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -58,16 +58,16 @@ def main(): elif choice == '2': print('\nAll Expenses:') print_expenses(expenses) - + elif choice == '3': print('\nTotal Expenses: ', total_expenses(expenses)) - + elif choice == '4': category = input('Enter category to filter: ') print(f'\nExpenses for {category}:') expenses_from_category = filter_expenses_by_category(expenses, category) print_expenses(expenses_from_category) - + elif choice == '5': print('Exiting the program.') break @@ -82,17 +82,17 @@ def main(): ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -103,7 +103,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index 49922bc9b5e..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: Step 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index 4d7a19e3d31..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: Passo 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index c23f515ffc4..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: Step 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index 8ad167aae63..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: Step 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index 584fb9a5d8a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: Step 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index 7dbe2e614a5..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: Step 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index e97b5808f71..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: Step 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index a43abb0ba7b..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: Step 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index 3430242863b..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: Step 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index 7372795dc8d..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: Passo 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index ff35d66fb64..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: Step 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index e76a4231dbe..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: Step 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 28a5a2947e6..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: Step 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 72b9ed7243f..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: Step 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index e98ccb28c8d..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: Passo 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index 6bd82bd207a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: Step 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index adf15fec028..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: Passaggio 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index 6964fe986fc..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: Step 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index 6eaadd1764c..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: Step 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index 87c913f5814..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: Step 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index ba33dba43a7..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: Step 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index 94686a45d25..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: Step 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index a131fcbe30e..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: Step 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Write another `if` statement that checks if the target key is less than the key of the current node. - -Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. - -# --hints-- - -You should write another `if` statement to check if `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -You should return `self._search(node.left, key)` from your new `if` block. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index 89a4f073c60..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: Passo 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index 3d56d70cdce..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index 76f74a8e772..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 09eaa87bb9b..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: Step 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index fb38080c87f..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: Step 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index e545d3132eb..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: Step 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index f27c86f8edd..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: Step 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index b8b4cdc5aea..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: Passo 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index f40522ef6af..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: Step 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index b17d328b8ba..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: Step 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index a22b30cf3e3..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: Step 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Remember to use the `pass` keyword. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index e700407e789..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: Step 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index 1364496a3f2..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: Step 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index 9264f543477..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: Passo 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index a461e9b021b..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: Step 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index 4fc01474424..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: Step 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index 22a42efe6fe..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: Step 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index b63d2b40f74..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: Step 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index 5ec2859f695..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: Step 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index 710f4b77ac6..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: Step 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index e2cf972f28f..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: Step 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index bd138259019..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: Step 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index 183d9570a5a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: Step 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index f5eac694731..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: Step 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index 3919fea8e71..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: Step 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index 03d6252fa8a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: Step 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index 8848fcf5b80..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: Step 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index 0f4e6ba8b31..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: Step 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index 8d29f6d4836..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: Step 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index 7353ec647d8..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: Passo 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index 85aff713768..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: Step 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 2e6164fd325..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: Passo 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index e050aa88887..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: Step 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index f0878d8e559..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: Step 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index cae7381e0b5..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: Step 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index 584dca42b97..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: Step 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index cdcd5112d03..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: Passo 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index 9469c66566b..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: Step 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index a5b2b1d2e1a..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: Formattatore aritmetico -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -Gli studenti delle elementari spesso scrivono l problemi aritmetici in colonna per risolverli più facilmente. Per esempio, "235 + 52" diventa: - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. La funzione dovrebbe accettare un secondo argomento facoltativo. Quando il secondo argomento ha valore di `True`, devono essere mostrati anche i risultati. - -## Esempio - -Chiamata della funzione: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -Output: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -Chiamata della funzione: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -Output: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## Regole - -La funzione restituirà la conversione corretta se i problemi dati sono correttamente formattati, altrimenti, deve **restituire** una **stringa** che descrive un errore significativo per l'utente. - -- Situazioni che devono restituire un errore: - - Se ci sono **troppi problemi** dati alla funzione. The limit is **five**, anything more will return: `'Error: Too many problems.'` - - Gli operatori appropriati che la funzione accetterà sono **addizione** e **sottrazione**. Moltiplicazione e divisione devono dare un errore. Altri operatori non menzionati in questa lista non serve che vengano testati. The error returned will be: `"Error: Operator must be '+' or '-'."` - - Ogni numero (operando) deve contenere solo cifre. Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - Ogni operando (numero da ogni lato dell'operatore) ha una lunghezza di massimo 4 cirre. Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- Se l'utente ha dato i problemi nel formato corretto, la conversione che restituisci deve seguire le seguenti regole: - - Ci deve essere un singolo spazio tra l'operatore e il più lungo dei due operandi, l'operatore deve essere sulla stessa riga del secondo operando, entrambi gli operandi devono essere nell'ordine dato (il primo in alto, il secondo in basso). - - I numeri devono essere allineati a destra. - - Devono esserci quattro spazi tra ogni problema. - - Ci devono essere dei trattini sotto ogni problema. I trattini devono avere la stessa larghezza del singolo problema. (L'esempio sopra mostra come deve apparire.) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index 4fad5e03695..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: App per il budget -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. Dovrebbe essere in grado di instanziare oggetti basati su diverse categorie di budget, come *food*, *clothing*, e *entertainment*. Quando gli oggetti sono creati, ricevono come argomento il nome della categoria. La classe dovrebbe avere una classe di istanza chiamata `ledger` che è una lista. La classe dovrebbe anche contenere i seguenti metodi: - -- Un metodo di deposito `deposit` che accetta un valore e una descrizione. Se non è data alcuna descrizione, dovrebbe essere una stringa vuota come default. Il metodo dovrebbe aggiungere un oggetto alla lista ledger nella forma di `{"amount": amount, "description": description}`. -- Un metodo di prelievo `withdraw` che è simile al metodo `deposit`, ma il valore dato come argomento dovrebbe essere salvato in ledger come un valore negativo. Se non ci sono abbastanza fondi, nulla dovrebbe essere aggiunto al ledger. Il metodo dovrebbe restituire `True` se il prelievo ha avuto atto, e `False` altrimenti. -- Un metodo per ottenere la giacenza attuale `get_balance` che restituisce l'ammontare nella categoria del budget basato su depositi e prelievi che hanno avuto luogo. -- Un metodo di trasferimento `transfer` che accetta un ammontare e un'altra categoria come argomenti. Il metodo dovrebbe aggungere un prelievo con l'ammontare e la descrizione "Transfer to [Categoria del budget di destinazione]". Il metodo dovrebbe aggiungere un deposito all'altra categoria del budget con l'ammontare e la descrizione "Transfer from [Categoria del Budget di origine]". Se non ci sono abbastanza fondi, nulla dovrebbe essere aggiunto a nessuno dei due ledger. Questo metodo dovrebbe restituire `True` se il trasferimento ha avuto luogo, e `False` altrimenti. -- Un metodo `check_funds` che accetta un ammontare come argomento. Restituisce `False` se l'ammontare è più grande del saldo della categoria del budget e `True` altrimenti. Questo metodo dovrebbe essere usato sia dal metodo `withdraw` che dal metodo `transfer`. - -Quando l'oggetto budget è stampato dovrebbe mostrare: - -- Una riga di titolo di 30 caratteri dove il nome della categoria è centrato in una riga di caratteri `*`. -- Una lista delle transazioni nel ledger. Ogni linea dovrebbe mostrare la descrizione e l'ammontare. I primi 23 caratteri della descrizione dovrebbero essere mostrati, poi l'ammontare. L'ammontare dovrebbe essere allineato a destra, avere due cifre decimali, e mostrare un massimo di 7 caratteri. -- Una riga che mostra il totale della categoria. - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -Oltre la classe `Category`, crea una funzione, al di fuori della classe, chiamata `create_spend_chart` che prende una lista di categorie come argomento. Dovrebbe restituire una stringa che è un grafico a barre. - -Il grafico dovrebbe mostrare la percentuale spesa in ogni categoria passata alla funzione. La percentuale spesa dovrebbe essere calcolata solo con i prelievi e non i depositi. Lungo il lato sinistro del grafico dovrebbero esserci etichette 0 - 100. Le barre nel grafico dovrebbero essere fatte di caratteri "o". L'altezza di ogni barra dovrebbe essere arrotondata per difetto alla decina più vicina. La linea orizzontale sotto le barre dovrebbe finire due caratteri dopo l'ultima barra. Ogni nome di categoria dovrebbe essere scritto verticalmente sotto la barra. Dovrebbe esserci un titolo in cima che dice "Percentage spent by category". - -Questa funzione sarà testata con al massimo quattro categorie. - -Guarda all'esempio di output qui sotto con attenzione e assicurati che gli spazi dell'output combacino esattamente con l'esempio. - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index e9737c79d7c..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: Calcolatore dell'area dei poligoni -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Classe Rectangle - -Quando viene creato un oggetto Rectangle, dovrebbe essere inizializzato con attributi `width` (larghezza) e `height` (altezza). La classe dovrebbe anche contenere i seguenti metodi: - -- `set_width` -- `set_height` -- `get_area`: Restituisce l'area (`width * height`) -- `get_perimeter`: Restituisce il perimetro (`2 * width + 2 * height`) -- `get_diagonal`: Restituisce la diagonale (`(width ** 2 + height ** 2) ** .5`) -- `get_picture`: Restituisce una stringa che rappresenta la forma usando linee di "\*". Il numero di righe dovrebbe essere uguale all'altezza e il numero di "\*" in ogni riga dovrebbe essere uguale alla larghezza. Ci dovrebbe essere un carattere di nuova riga (`\n`) alla fine di ogni riga. Se la larghezza o l'altezza è maggiore di 50, occorre restituire la stringa: "Too big for picture.". -- `get_amount_inside`: Prende un'altra forma (quadrato o rettangolo) come argomento. Restituisce il numero di volte che la forma passata potrebbe adattarsi all'interno della forma (senza rotazioni). Per esempio, un rettangolo con una larghezza di 4 e un'altezza di 8 potrebbe contenere due quadrati con lati di 4. - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Classe Square - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## Esempio di utilizzo - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -Tale codice deve restituire: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index ce9f271390d..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: Calcolatore delle probabilità -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -Supponiamo che ci sia un cappello contenente 5 palline blu, 4 palline rosse e 2 palline verdi. Qual è la probabilità che una pescata casuale di 4 palline contenga almeno 1 pallina rossa e 2 palline verdi? Mentre sarebbe possibile calcolare la probabilità utilizzando la matematica avanzata, un modo più facile è quello di scrivere un programma per eseguire un gran numero di esperimenti per stimare una probabilità approssimativa. - -Per questo progetto, scriverai un programma per determinare la probabilità approssimativa di pescare a caso determinate palline da un cappello. - -First, create a `Hat` class in `main.py`. La classe deve prendere un numero variabile di argomenti che specificano il numero di palline di ogni colore che sono nel cappello. Ad esempio, un oggetto di classe potrebbe essere creato in uno qualsiasi di questi modi: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -Un cappello sarà sempre creato con almeno una pallina. Gli argomenti passati all'oggetto cappello alla creazione dovrebbero essere convertiti in una variabile di istanza `contents`. `contents` dovrebbe essere una lista di stringhe contenente un elemento per ogni pallina nel cappello. Ogni elemento nella lista dovrebbe essere il nome del colore che rappresenti una singola sfera di quel colore. Ad esempio, se il tuo cappello è `{"red": 2, "blue": 1}`, `contents` dovrebbe essere `["red", "red", "blue"]`. - -La classe `Hat` dovrebbe avere un metodo `draw` che accetta un argomento che indica il numero di palline da prelevare dal cappello. Questo metodo dovrebbe rimuovere palline a caso da `contents` e restituire quelle palline come un elenco di stringhe. Le palle non devono tornare nel cappello durante il pescaggio, simile all'esperimento con un'urna senza sostituzione. Se il numero di palline da pescare supera la quantità disponibile, restituisci tutte le palline. - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). Questa funzione dovrebbe accettare i seguenti argomenti: - -- `hat`: Un oggetto cappello contenente palline che dovrebbero essere copiate all'interno della funzione. -- `expected_balls`: Un oggetto che indica il gruppo esatto di palline che tentiamo di attingere dal cappello per l'esperimento. Ad esempio, per determinare la probabilità di pescare 2 palline blu e 1 pallina rossa dal cappello, imposta `expected_balls` a `{"blue":2, "red":1}`. -- `num_balls_drawn`: Il numero di palline da pescare dal cappello in ogni esperimento. -- `num_experiments`: Il numero di esperimenti da eseguire. (Più esperimenti eseguiti, più precisa sarà la probabilità approssimativa.) - -La funzione `experiment` dovrebbe restituire una probabilità. - -Per esempio, se vuoi determinare la probabilità di ottenere almeno due palline rosse e una verde quando estrai cinque palline da un cappello contenente sei palline nere, quattro rosse, e tre verdi. Per fare ciò, esegui `N` esperimenti, conti il numero `M` di estrazioni in cui ottieni almeno due palline rosse e una verde, e stimi la probabilità come `M/N`. Ogni esperimento consiste nell'iniziare con un cappello che contiene le palle specificate, estraendo svariate palline, e controllando se hai ottenuto le palle che stati cercando di ottenere. - -Ecco come verrebbe chiamata la funzione `experiment` basata sull'esempio sopra con 2000 esperimenti: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -Poiché questo è basato su pescaggi casuali, la probabilità sarà leggermente diversa ogni volta che il codice viene eseguito. - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index 717737dc2fd..00000000000 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: Calcolatore di tempi -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -Scrivi una funzione denominata `add_time` che richieda due parametri obbligatori e uno opzionale: - -- un'ora di inizio nel formato dell'orologio a 12 ore (che termina in AM o PM) -- una durata che indica il numero di ore e minuti -- (facoltativo) un giorno di inizio della settimana, senza differenziare tra maiuscole e minuscole - -La funzione dovrebbe sommare la durata all'ora di inizio e restituire il risultato. - -Se il risultato sarà il giorno successivo, dovrebbe mostrare `(next day)` dopo l'ora. Se il risultato sarà più di un giorno dopo, dovrebbe mostrare `(n days later)` dopo il tempo, dove "n" è il numero di giorni dopo. - -Se alla funzione viene passato il parametro opzionale del giorno di inizio della settimana, l'output dovrebbe visualizzare il giorno della settimana del risultato. Il giorno della settimana in output dovrebbe comparire dopo l'ora e prima del numero di giorni successivi. - -Di seguito sono riportati alcuni esempi di casi diversi che la funzione dovrebbe gestire. Presta molta attenzione alla spaziatura e punteggiatura dei risultati. - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -Non importare nessuna libreria Python. Supponi che gli orari di inizio siano validi. I minuti nel tempo di durata saranno un numero intero inferiore a 60, ma l'ora può essere qualsiasi numero intero. - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index 4c065773820..148ede6aebd 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -In this project, you will learn the basics of CSS(Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. Come hai imparato negli ultimi step di Cat Photo App, c'è una struttura di base necessaria per iniziare a costruire la tua pagina web. Every HTML document should have a `DOCTYPE` declaration and `html` element. The `DOCTYPE` tells the browser which version of HTML the document is in. And the `html` element represents the root element which contains all other elements. diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md index b07dce929c0..ec63bcf7d48 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md @@ -15,7 +15,7 @@ Ecco un esempio di un elemento `img` con un attributo `src` che punta al logo di ``` -All'interno dell'elemento `img` esistente, aggiungi un attributo `src` con questo URL: +Inside the existing `img` element, add a `src` attribute with this URL: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` @@ -27,7 +27,7 @@ Il codice dovrebbe avere un elemento `img`. Potresti aver rimosso l'elemento `im assert(document.querySelector('img')); ``` -L'elemento `img` dovrebbe avere un attributo `src`. Hai omesso l'attributo o hai un refuso. Assicurati che ci sia uno spazio tra il nome dell'elemento e il nome dell'attributo. +Your `img` element should have a `src` attribute. Hai omesso l'attributo o hai un refuso. Assicurati che ci sia uno spazio tra il nome dell'elemento e il nome dell'attributo. ```js assert(document.querySelector('img').src); diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md index 030c1126860..cbbe6e4be6a 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md @@ -21,7 +21,7 @@ Trasforma l'immagine in un link circondandola con i tag necessari. Usa `https:// # --hints-- -Dovresti avere un elemento `img` con un valore `src` di `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. Potresti averlo eliminato accidentalmente. +You should have an `img` element with a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. Potresti averlo eliminato accidentalmente. ```js assert( diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md index 1a9a82e287b..b0ce7786903 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -Dopo la lista non ordinata, aggiungi una nuova immagine con un attributo `src` con un valore di: +After the unordered list, add a new image with a `src` attribute value set to: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` @@ -40,13 +40,13 @@ assert( ); ``` -La nuova immagine non ha un attributo `src`. Verifica che ci sia uno spazio dopo il nome del tag di apertura e/o che ci siano spazi prima di tutti i nomi degli attributi. +The new image does not have a `src` attribute. Verifica che ci sia uno spazio dopo il nome del tag di apertura e/o che ci siano spazi prima di tutti i nomi degli attributi. ```js assert($('section')[1].lastElementChild.hasAttribute('src')); ``` -Il valore dell'attributo `src` della nuova immagine dovrebbe essere `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Assicurati che il valore dell'attributo `src` sia circondato da virgolette. +The new image should have a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Assicurati che il valore dell'attributo `src` sia circondato da virgolette. ```js assert( diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index 4ee687ff699..c8da5c54686 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -38,7 +38,7 @@ assert( ); ``` -L'attributo `src` della terza immagine dovrebbe essere `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. +The third image should have a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index 57b550edee5..b302f230c00 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -All'interno dell'elemento `.cat-left-ear` crea un altro elemento `div` con la classe `cat-left-inner-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -Non dovresti cambiare l'elemento `div` con la classe `cat-left-ear` esistente. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -Dovresti avere un elemento `div` all'interno dell'elemento `.cat-left-ear`. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -L'elemento `div` dovrebbe avere la classe `cat-left-inner-ear`. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index f5b530554cf..00000000000 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: Step 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -All'interno dell'elemento `.cat-right-ear` crea un altro elemento `div` con la classe `cat-right-inner-ear`. - -# --hints-- - -Non dovresti cambiare l'elemento `div` con la classe `cat-right-ear` esistente. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -Dovresti avere un elemento `div` all'interno dell'elemento `.cat-right-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -L'elemento `div` dovrebbe avere la classe `cat-right-inner-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index 9ab681e5d35..0357e49d8c6 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: Step 23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index 9452bf47e8b..4f3aef3aaea 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: Step 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index 5e6d31392fc..5f0a02dbeb4 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: Step 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index e4edcce97e6..036de4fe2b6 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: Step 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index c008f02a964..3581481b5d9 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: Step 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index 678b36fda49..4e0d0e917f1 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: Step 28 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index 4db1ef82b0b..ee682484356 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: Step 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ Come hai fatto per l'orecchio sinistro, ruota l'orecchio destro di 45 gradi. # --hints-- -You should set the `transform` property of your `.right-ear` element to `rotate(45deg)`. Non dimenticare di aggiungere il punto e virgola. +You should set the `transform` property of your `.cat-right-ear` element to `rotate(45deg)`. Non dimenticare di aggiungere il punto e virgola. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index f339f48c0ee..5a85f8158f1 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: Step 30 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index 5a02ab70845..5ef81915f47 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: Step 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ Le orecchie dovrebbero sempre essere posizionate sopra la parte della testa che `z-index` è una proprietà che puoi usare per definire l'ordine di sovrapposizione degli elementi HTML. Qualsiasi elemento con uno `z-index` superiore sarà sempre posizionato su un elemento con uno `z-index` minore. -Per vedere `z-index` in azione, imposta la proprietà `z-index` dell'orecchio sinistro su `-1`. +To see `z-index` in action, set the `z-index` property of the left ear to `-1`. # --hints-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index 5ae694aa4c1..3df52bd3880 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: Step 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index b892d61ca1d..3b3efbf0154 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,13 +1,13 @@ --- id: 646cfde6ac612e5d60391f50 -title: Step 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- -Set the `z-index`property of the right ear to `1` so it always stays over the head. +Set the `z-index` property of the right ear to `1` so it always stays over the head. # --hints-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index 2474721e38d..d2e969ddc79 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: Step 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index f6dffb6ad09..c50cd5abbb6 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: Step 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index b2a2aa9d32e..8c8f97e1792 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: Step 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index c63130dd9b7..317a36606da 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: Step 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index ac5460d80ed..c418415c34e 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: Step 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index fb2341ff79d..b23cefc8b02 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: Step 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index efc7eb4d421..f5ea9c84adc 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: Step 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- Ora inizierai a lavorare agli occhi del gatto. Come le orecchie, gli occhi avranno una parte interna. -Crea un elemento `div` con la classe `cat-eyes`. All'interno dell'elemento `cat-eyes`, crea due elementi `div` rispettivamente con la classe `cat-left-eye` e `cat-right-eye`. +Crea un elemento `div` con la classe `cat-eyes`. Inside the `.cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. # --hints-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index 1907933582e..9b495edf063 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -1,13 +1,13 @@ --- id: 646ddd3f9f97a0667b964bdb -title: Step 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- -All'interno dell'elemento `.cat-left-eye` crea un altro elemento `div` con la classe `cat-left-inner-eye`. +Create two `div` elements, one with the class `cat-left-inner-eye` inside the `.cat-left-eye` element and another with the class `cat-right-inner-eye` inside the `.cat-right-eye` element. # --hints-- @@ -17,18 +17,36 @@ Non dovresti cambiare l'elemento `div` con la classe `cat-left-eye` esistente. assert(document.querySelectorAll('div.cat-left-eye').length === 1); ``` -Dovresti avere un elemento `div` all'interno dell'elemento `.cat-left-eye`. +You should not change the existing `div` element with the class `.cat-right-eye`. + +```js +assert(document.querySelectorAll('div.cat-right-eye').length === 1); +``` + +You should have one `div` element inside your `.cat-left-eye` element. ```js assert(document.querySelectorAll('.cat-left-eye div').length === 1); ``` -L'elemento `div` dovrebbe avere la classe `cat-left-inner-eye`. +You should have one `div` element inside your `.cat-right-eye` element. + +```js +assert(document.querySelectorAll('.cat-right-eye div').length === 1); +``` + +The new `div` element inside `.cat-left-eye` should have the class `cat-left-inner-eye`. ```js assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('cat-left-inner-eye')); ``` +The new `div` element inside `.cat-right-eye` should have the class `cat-right-inner-eye`. + +```js +assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); +``` + # --seed-- ## --seed-contents-- @@ -57,9 +75,11 @@ assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index d0429d61be1..00000000000 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: Step 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -All'interno dell'elemento `.cat-right-eye` crea un altro elemento `div` con la classe `cat-right-inner-eye`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-left-eye`. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -Dovresti avere un elemento `div` all'interno dell'elemento `.cat-right-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -L'elemento `div` dovrebbe avere la classe `cat-right-inner-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index 61b694c667d..17e805ec534 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: Step 43 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index db3d7bffe73..2fdf171f532 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: Step 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Move the left eye into position with a `position` property of `absolute` a `top` of `54px`, and a `left` of `39px`. +Move the left eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `39px`. # --hints-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index e997fa53057..7a379b48457 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: Step 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index ba99568aaa5..14e3920886f 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: Step 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index 4d2240b84f7..6fb25a4498f 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: Step 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index 1fc39e00bac..5082b194cf0 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: Step 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index 7e9b5c17a3e..6b2ecf69d80 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: Step 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index 1630a8832c2..f0c356629a7 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: Step 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index baaa1bdff6b..b2adc632993 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: Step 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index d937ec67d1c..24698b49cf2 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -1,8 +1,8 @@ --- id: 646dec359bef3b7811fba5a6 -title: Step 52 +title: Step 50 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index a489db160df..5691dd12dd1 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: Step 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index e42419dec7b..25dbe3bb0fc 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: Step 54 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index 1effb568411..bee7c054640 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: Step 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index 8ff18400621..83a5138fb7b 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: Step 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index 64173411596..91b8ad752a4 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: Step 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -13,13 +13,13 @@ Crea un elemento `div` con la classe `cat-mouth`. # --hints-- -Dovresti creare un elemento `div`. +You should create a `div` element. ```js assert(document.querySelectorAll('div').length === 13) ``` -L'elemento `div` dovrebbe avere la classe `cat-mouth` +Your `div` element should have the class `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index 061e6993bf4..552af12bea2 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: Step 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index 94333fa73e6..b556d99e242 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: Step 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ Usando un selettore di classe, per l'elemento `.cat-mouth-line-left` imposta `po # --hints-- -Dovresti avere un selettore `cat-mouth-line-left`. +You should have a `.cat-mouth-line-left` selector. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index 2367d0f24be..d8b5e78be60 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: Step 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- @@ -11,7 +11,7 @@ Utilizzando la proprietà `transform`, ruota la linea sinistra della bocca di `1 # --hints-- -La proprietà `.cat-mouth-line-left` dovrebbe avere una proprietà `transform` impostata su `rotate(170deg)`. +Your `.cat-mouth-line-left` selector should have a `transform` property set to `rotate(170deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')?.transform === 'rotate(170deg)') diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index f286ca4f0cd..794099161af 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: Step 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index 8848e93d5e8..5aae4a33b85 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: Step 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ Ruota la linea destra della bocca di `165` gradi. # --hints-- -La proprietà `.cat-mouth-line-left` dovrebbe avere una proprietà `transform` impostata su `rotate(165deg)`. +Your `.cat-mouth-line-right` selector should have a `transform` property set to `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index c0c1c1d7800..c347da1abf7 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: Step 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index 4300b755476..ae6ffb804a3 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -1,8 +1,8 @@ --- id: 646f0ef13604420a8744f7d4 -title: Step 66 +title: Step 64 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index 347dc26e04c..67251ee2c0e 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: Step 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index cb3f1c0fff8..b48ccadacf1 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: Step 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index 6de786206e1..d2e9e114bb9 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: Step 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index 51cc68144dc..846f2ec30ec 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: Step 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index 0c8b146f7f9..d1b99eaa2f2 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: Step 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index b1b34504686..71ab456fbee 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: Step 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index 0648e160b1b..81323d946f2 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: Step 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index 48f9f907540..ec13193f012 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: Step 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index b919dcd7e42..9aa783056e7 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: Step 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index f44e74780cf..4ccd8a51057 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: Step 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index e27d766f818..e86e6b0a9f4 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: Step 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index bb4f7e40de1..890d25b95f6 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: Step 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Usa un selettore di classe per selezionare l'elemento `cat-whisker-right-middle`, poi posiziona il baffo centrale destro impostando `position` su `absolute`, `top` su `127px` e `left` su `109px`. +Use a class selector to target the `.cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. # --hints-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index 267f83220ef..e258d297d88 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: Step 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index f69b0e7910e..1fbe02e0596 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: Step 81 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index c757b18f02c..a0ea780826b 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: Step 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index d2e4d6cdea1..ab3b444702a 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 Ora dovresti centrare la testa del gatto. -Give the `.cat-head` element a position property set to `absolute`. Imposta il valore `0` per le proprietà `right`, `left`, `top` e `bottom`, quindi imposta la sua proprietà `margin` su `auto` per tutti i lati. Questo è un modo per centrare un elemento verticalmente e orizzontalmente usando il posizionamento CSS. +Give the `.cat-head` element a `position` property set to `absolute`. Imposta il valore `0` per le proprietà `right`, `left`, `top` e `bottom`, quindi imposta la sua proprietà `margin` su `auto` per tutti i lati. Questo è un modo per centrare un elemento verticalmente e orizzontalmente usando il posizionamento CSS. # --hints-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 24881e74ce6..da635eec209 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: Step 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index b2a198a71eb..425bbc1408b 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: Step 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index faa21ff279f..84c3c7fd96d 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: Step 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 21c057f2911..75efabeebad 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index 2eb5ce7b79b..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: Step 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Infine, devi restituire il valore di `median`. - -Come per la funzione `getMean`, puoi condensare questo codice in una riga e ridurre il numero di variabili da istanziare. Tuttavia, è importante ricordare che il codice più breve non è sempre quello migliore. In questo caso, ridurre le righe renderebbe il codice più difficile da leggere e comprendere, con un impatto sulla futura manutenzione. - -# --hints-- - -La funzione `getMedian` dovrebbe restituire il valore di `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index 3dd73d29b0d..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: Step 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index 46a51139d31..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: Step 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 0f02d3db86f..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: Step 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index d2212d75820..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: Step 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index 2dfb4cbc78f..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: Step 28 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index f1a2d7a1a84..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: Step 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index e0b4b5af12f..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: Step 30 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index fbceec0ff83..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: Passo 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index e452ae139ef..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: Step 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -You should return `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index 1577e58fe42..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: Step 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -You should have a constant called `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index 7f11d68152e..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: Step 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index 7c4ec47ead2..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: Passo 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..1dd73ecc04b --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index afa847def3b..1035ffa740c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index a332707e37b..c65ecdb8055 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index 9dbedfc1a66..0301c84ad70 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index f7a5f348e6a..f705481e9a8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index 713e958d513..331e6f18019 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md index 65dee4483ea..a4bb9f359e9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index e98534d5f6f..3c7bdb06527 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index 3d22b937e68..0fe099b8f44 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index 1f81fefe45d..dd2523e9735 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index f4c1d342d60..9f970a956ff 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index c1f479f7420..ba377ae0538 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index 6b5f3a24ef5..3c3fe71e5b6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index 398dad6195a..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: Step 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -Alle variabili può essere assegnato un valore. Se lo fai quando le dichiari, si parla di inizializzazione. Ad esempio: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Inizializza la variabile `xp` con il valore `0`, un numero. - -# --hints-- - -`xp` dovrebbe avere il valore `0`. - -```js -assert.equal(xp, 0); -``` - -Dovresti inizializzare la variabile `xp` a `0`. Non dimenticare il punto e virgola alla fine della riga. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index e937d3a65c0..ab55d1d462d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Create another variable called `currentWeapon` and set it to `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -You should use `let` to declare a variable called `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` Dovresti usare il camelCase per il nome della variabile. ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -La variabile `currentWeapon` dovrebbe essere impostata a `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` Dovresti inizializzare la variabile a `0`. ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index c32e18a3143..366d360462a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index 447c7e82984..f1becc77758 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index d75c9a255e6..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: Step 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -I valori delle variabili che hai assegnato finora sono tutti dei numeri. JavaScript ha diversi tipi di dati. Il prossimo che userai è la stringa. Le stringhe vengono usate per conservare cose come parole o testo. Le stringhe sono racchiuse da virgolette doppie, singole o backtick. Ecco un esempio di dichiarazione di una variabile con una stringa: - -```js -let developer = "Naomi"; -``` - -Assegna la variabile `inventory` in modo che il suo valore sia `stick`. - -# --hints-- - -Dovresti impostare `inventory` con la stringa `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -Dovresti inizializzare la variabile `inventory` con la stringa `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index 35046844a5a..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: Step 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -L'inventario del giocatore nel tuo gioco potrà contenere più oggetti. Dovrai usare un tipo di dato adatto per questo scopo. Un array può essere usato per contenere valori multipli. Ad esempio: - -```js -let order = ["first", "second", "third"]; -``` - -Questo è un array che contiene tre valori. Nota che i valori sono separati da una virgola. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -La variabile `inventory` dovrebbe essere un array. - -```js -assert.isArray(inventory); -``` - -La variabile `inventory` dovrebbe contenere tre valori. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -La variabile `inventory` dovrebbe avere i valori nell'ordine corretto. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index efb3eb42c68..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: Step 14 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -La variabile `inventory` dovrebbe essere ancora un array. - -```js -assert.isArray(inventory); -``` - -La variabile `inventory` dovrebbe contenere solo un valore. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index 1c6896b6385..098fc3b1210 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index e1cf7227e52..4743d8784a5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index 2343807e34f..901f3e46ca4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index df6d9175ef0..c8c0e533bba 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index bff7fe927a3..32265385dad 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index cf885e326a5..c345690b8a4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index 895d9f626f6..c2983a9c4c9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 3993e2cc4f2..3d3b0f35f45 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 0c3e3558f55..7a86fecccfb 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 99305ee6910..9a94f5e53e6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index 34f6d37629e..be30aef0dab 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 7ac313c4d66..e1ec490a6f4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 2778576301a..cc0f568f9ad 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index 3daeb618c53..11b801e653e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index 4891a4e6c0d..d62faaf4041 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index 426964875f5..a7bb338f680 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 94cab3e9346..21ffe04306e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index 2e28a3502d6..f4f616ac6ee 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index c64e59fc7aa..b8e71bfcb8a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 33228cf6eec..9bd01fd47cb 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index d732c23478a..422c136674f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 deleted file mode 100644 index 96f0397e677..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -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. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"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); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 index 4624199b9c3..864d3854d20 100644 --- 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 @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index 59225536b09..1bc63e554a5 100644 --- 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 @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index f3c2a126efd..4bff03a924e 100644 --- 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 @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index ab9dc547757..7cd81655b28 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index d231dc1ebbc..1fd33d9628a 100644 --- 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 @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 09859e4fdad..59ab365c6f8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index be94d8e421a..aaa9f03dba7 100644 --- 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 @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index 34f967459d3..c6c3339c4e7 100644 --- 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 @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index 567ce64b741..39194b323df 100644 --- 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 @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index 5c03892cd1c..40248ea151a 100644 --- 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 @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index ad89dec6f27..d92bac466a9 100644 --- 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 @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; 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 index 69288ecb4e1..88610822650 100644 --- 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 @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index c71afe0497d..32f023f4676 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index f28d250a765..9b006f5552d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index 853b35c178a..1835fd6ff83 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index a7145c91867..ae03cf1d60f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index 77605fd048b..67e12f24110 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index a4f4a79d3dc..f65fe9233e8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index e2308903009..a55a9867523 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index a55ed6664ab..8c064f37052 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index b170273309b..64f131ec974 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index c1d15b3cd73..83c3b785889 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index 4ccc11fdcb9..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: Step 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -La stringa `condition` è soltanto un segnaposto. Cambia la condizione dell'istruzione `if` in modo da verificare se `gold` è maggiore o uguale a `10`. - -Ecco un'istruzione `if` che verifica se `num` è maggiore o uguale a `5`: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -L'istruzione `if` dovrebbe verificare se `gold` è maggiore o uguale a `10`. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -La funzione `buyHealth` dovrebbe aggiornare `health` e `gold` se `gold` è maggiore o uguale a `10`. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -La funzione `buyHealth` non dovrebbe aggiornare `health` e `gold` se `gold` è minore di `10`. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index c4b462213fe..ad8d1bb8af3 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index 5356f41bd09..ef32574284b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index 0956495038d..0d6893f812a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index c0f656ac60d..abf7f6f1c2d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index ab5a916dd26..a4a1cf53175 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index 656d9f30d9c..ddb9eeba4ff 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index d769cc64d4a..27a6933ade6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -Il valore della variabile `currentWeapon` corrisponde a un indice nell'array `weapons`. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -Nella funzione `buyWeapon`, usa l'assegnazione composta per aggiungere `1` a `currentWeapon` - l'utente sta comprando l'arma successiva nell'array `weapons`. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -Dovresti usare l'assegnazione composta per aggiungerne uno a `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -La funzione `buyWeapon` dovrebbe aumentare `currentWeapon` di `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Il codice dovrebbe essere nell'istruzione `if`. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index ddd7f93b559..1bd4b3f4533 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Cambia l'assegnazione di `currentWeapon` in modo che usi l'operatore di incremento. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -Dovresti usare l'operatore di incremento per aumentare `currentWeapon` di `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -Non dovresti usare l'assegnazione composta per aumentare `currentWeapon` di `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 6db5cc8c3fc..4c8e2749174 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 58757f68959..045d1e0eaa9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index fc982cc842c..cf70221f2d8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Usa la notazione a parentesi per accedere a un oggetto all'interno dell'array `weapons` e assegnalo alla variabile `newWeapon`. Posiziona la variabile `currentWeapon` tra le parentesi. +Usa la notazione a parentesi per accedere a un oggetto all'interno dell'array `weapons` e assegnalo alla variabile `newWeapon`. Place the variable `currentWeaponIndex` within the brackets. Quando usi una variabile in notazione a parentesi, stai consultando una proprietà o un indice in base al *valore* di quella variabile. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -Dovresti aggiornare `newWeapon` in modo che abbia il valore di `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index 9d4810fc72b..03ce2f3d6eb 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` è un oggetto. Usa la dot notation per ottenere la proprietà `name` dell'oggetto. +`weapons[currentWeaponIndex]` is an object. Usa la dot notation per ottenere la proprietà `name` dell'oggetto. # --hints-- -Dovresti aggiornare `newWeapon` in modo che abbia il valore di `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 244dc8f4e48..b0d934b55e0 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 2c0ddbbf4ef..81190f1368d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ La funzione `buyWeapon` dovrebbe aggiungere il valore di `newWeapon` all'array ` ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index 92f0fd2d912..979eee84b98 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index d3543b5a917..b3f8db7b296 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index b6b65a14e53..0ca21e13add 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index a300ad20254..ac23c6d45e8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Una volta che un giocatore ha l'arma migliore, non può comprarne un'altra. Metti tutto il codice nella funzione `buyWeapon` all'interno di un'altra istruzione `if`. La condizione dovrebbe verificare se `currentWeapon` è minore di `3` - l'indice dell'ultima arma. +Una volta che un giocatore ha l'arma migliore, non può comprarne un'altra. Metti tutto il codice nella funzione `buyWeapon` all'interno di un'altra istruzione `if`. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -Dovresti avere una nuova istruzione `if` che verifica se `currentWeapon` è minore di `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` L'istruzione `if` esistente dovrebbe trovarsi all'interno della nuova istruzione `if`. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); L'istruzione `else` esistente dovrebbe trovarsi all'interno della nuova istruzione `if`. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index f4258454a13..bcb21652dff 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Gli array hanno una proprietà `length` che restituisce il numero di elementi nell'array. Potresti voler aggiungere nuovi valori all'array `weapons` in futuro. -Cambia la condizione `if` in modo che verifichi se `currentWeapon` è minore della lunghezza dell'array `weapons`. Un esempio di verifica della lunghezza dell'array `myArray` è `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. Un esempio di verifica della lunghezza dell'array `myArray` è `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ Dovresti usare la proprietà `length` sull'array `weapons`. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -L'istruzione `if` dovrebbe verificare se `currentWeapon` è minore di `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index 69a9e7fbc7a..826d3a7acd4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -La variabile `currentWeapon` è l'indice dell'array `weapons`, ma la numerazione degli array parte da zero. L'indice dell'ultimo elemento in un array è inferiore della lunghezza dell'array di uno. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. L'indice dell'ultimo elemento in un array è inferiore della lunghezza dell'array di uno. Cambia la condizione `if` per verificare `weapons.length - 1`, invece di `weapons.length`. @@ -23,10 +23,10 @@ Dovresti aggiornare la condizione sottraendo `1` da `weapons.length`. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -La condizione dovrebbe verificare se `currentWeapon` è minore di `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 03445a397e0..248667b1579 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 6e3540f7ee6..9e1da0369ff 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 9ffc764c5c6..6b840241392 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index bd0a0ee3cbe..c8065e667e4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 0f5165ce3a3..173a17cb65d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index b6f580df958..c5659e9d028 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Nota che c'è già una variabile `currentWeapon` altrove nel tuo codice. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 1818e0614ba..3b634afc8d2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index dd48a1cf309..23ae76fc6d1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Usa l'operatore di concatenazione per farlo sulla stessa riga. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Usa l'operatore di concatenazione per farlo sulla stessa riga. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` `text.innerText` dovrebbe essere aggiornato con la stringa appropriata. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index dbbaacee1e5..b35dfe1b757 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index d80080c05e8..fac29caa810 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index e933b129bc2..334338fda54 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 570d4a08927..f82934bf0a5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index 9b22ad69e31..9281a6ff95d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index fcb0c9afb5e..f758da6991a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 190aa816090..9561b60f600 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index fac6e96bfaa..4dced4f45f6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index dfc22661f03..a0deb8b11a1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index 4498a485ad8..1d0e78f34b6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index b53965e7632..f9a1776f0c4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 51c24541a2a..b6b556e070c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index 6c6e8fe0100..ae4caf43082 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index c79cb09b64d..bfb8035c7c2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -Dovresti usare l'operatore di concatenazione per aggiungere l'arma attuale alla stringa. Puoi ottenere l'arma attuale con `weapons[currentWeapon].name`. +Dovresti usare l'operatore di concatenazione per aggiungere l'arma attuale alla stringa. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index 09dea5f3fd9..ce56b01cf0d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index 6743c0fe7bd..566e12c7fd5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Utilizzandoli, puoi generare un numero casuale all'interno di un intervallo. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ Dovresti usare la stessa riga `monsterHealth` che hai già scritto. assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -Dovresti aggiungerlo al valore `weapons[currentWeapon].power`. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` Dovresti usare `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? Dovresti aggiungere il risultato di `Math.floor(Math.random() * xp) + 1` al risultato di `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index a83c44967cf..72075ccef3a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index 41151f515af..418ee7b41df 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index 8ba01f45c49..8ebe52dbcff 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index b38e278ad86..71d0fb34e84 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index 2612b155404..ed2c646e78e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index 5225bd1a168..b237dee02e5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index ac9d97b9791..af5da2334a9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 340899ad079..fff02aca114 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 06e9c151c08..4cadf5ca5ad 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index 6ca82f97edf..d596639224e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index a59b992523a..9823cb07743 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 043a558a73a..97e5ca233be 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 0958ddd272e..190353a7c9b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 1746e3315a7..eba4ce06057 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -Alla fine del tuo codice, crea una funzione `restart`. All'interno di questa funzione, imposta `xp` a `0`, `health` a `100`, `gold` a `50`, `currentWeapon` a `0` e imposta `inventory` su un array con la stringa `stick`. +Alla fine del tuo codice, crea una funzione `restart`. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Aggiorna anche le proprietà `innerText` di `goldText`, `healthText` e `xpText` con i loro valori attuali. @@ -39,10 +39,10 @@ La funzione `restart` dovrebbe impostare `gold` a `50`. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -La funzione `restart` dovrebbe impostare `currentWeapon` a `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 9eb6a81580b..8cc4b45d5cf 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index ee395d2fa8b..6ecede88b0d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index c4b6036788d..6d1724afac5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 385f2042dac..b634c97f627 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 291b49564ae..d36d092c492 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index f541a786461..65e8bc45c69 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index 858f285b6be..204e6ca21cd 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index b65b8daf864..273cf155ddb 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index ce52084e1a3..db3a4575c3d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 377bfeda455..f5d9f951369 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index f5f0325012c..430378a15d6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ Sposta l'assegnazione di `monsterHealth` nel blocco `if`. # --hints-- -Dovresti spostare `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` nel blocco `if`. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index dd49b4b0f81..a5552890c06 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct Dovresti aggiungere un blocco `else` dopo il blocco `if (isMonsterHit())`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index 65e153fcb99..3859be4b63b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 0694af5f0fd..a5e8efa98ba 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 58e271651e8..bdc0582d874 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 91e6b0ec234..a3e8ab5c3b3 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 9c8f23f8183..638769c67e9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Decrementa il valore di `currentWeapon` nell'istruzione `if`, dopo l'aggiornamento del testo. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ Dovresti usare l'operatore di decremento. assert.match(attack.toString(), /--/); ``` -Dovresti decrementare `currentWeapon` nell'istruzione `if`. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index ef18ce52b77..88f2ac71abe 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index 252b771152d..f44bbd01cca 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index f18fcfa6cff..3fbc4bebbc4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index 53310af0c16..7cf86a8caac 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index 5a57ab8d9a7..03dcd3c2a15 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index ae21c052d6e..7f603982c95 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index 9c4b7ee3ca9..161b116edd7 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index 0745a92361c..799f03caf3a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index d29d12ef5fa..a6fad059c00 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index f384201bcfc..9b35f5229f4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index eeff13d22f0..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -I loop `for` sono dichiarati con tre espressioni separate da punti e virgola. `for (a; b; c)`, dove `a` l'espressione di inizializzazione, `b` è la condizione e `c` è l'espressione finale. - -L'espressione di inizializzazione viene eseguita solo una volta, prima dell'inizio del loop e viene spesso usata per definire e impostare la variabile di loop. Immagina che sia come dichiarare un contatore da usare nel loop. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -Dovresti cambiare l'inizializzazione nel loop `for` in `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index bd92eb2c273..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -La seconda istruzione in un loop `for`, l'istruzione della condizione, è valutata all'inizio di ogni iterazione del loop. Il loop continuerà finché la condizione viene valutata come vera. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -Dovresti aggiornare l'istruzione della condizione in `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index f9f0a263c65..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -L'ultima istruzione in un loop `for`, l'espressione finale, viene eseguita alla fine di ogni iterazione del loop. - -Dato che abbiamo cambiato l'istruzione di inizializzazione usando `i` invece di `x`, cambia `x++` in `i++`. Incrementerà l'inizializzatore `i` di 1 dopo ogni iterazione. - -# --hints-- - -Dovresti cambiare l'espressione finale in `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index ac0ac2881db..20e3d80b849 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index f37a6648f6e..9b759e97da9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index b63d8391737..26e19407606 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index 3f5cbe9afc3..95056a2b0e5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 203226f9d6c..3db7893a8d8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index de33a1a11e3..8e963a2c67f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index 9f024dbe589..2a9d713ce97 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index b505a95f4bf..789a33e51e1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index 68d9d3b44de..7b0a289b477 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index 7c48fb1d27a..840fcc896b5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index f43f66d6bda..7ce07ebab76 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index 7f003419859..9a28aa35aac 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index 4ad878c1379..cfe6f8b8d46 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index c822eafb542..dca6971ea70 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index 7954d5ddc23..2f4b7d654de 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -Dovresti dichiarare una variabile `cleanInputString`. -```js -assert.isDefined(cleanInputString); -``` -La variabile `cleanInputString` dovrebbe essere una funzione. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index bb3dccbf539..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: Step 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -Devi dividere `str` nei singoli caratteri. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -La funzione `cleanInputString` dovrebbe dichiarare una variabile `strArray`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Alla variabile `strArray` dovrebbe essere assegnato il valore di `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index b220b581ab1..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: Step 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Dichiara una variabile `cleanStrArray` e assegnale un array vuoto. La userai per memorizzare i caratteri numerici validi. - -# --hints-- - -`cleanInputString` dovrebbe dichiarare una variabile chiamata `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Alla variabile `cleanStrArray` dovrebbe essere assegnato un array vuoto. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index b6787f360dd..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: Step 21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Usa un loop `for` per iterare su ogni carattere nell'array `strArray`. - -# --hints-- - -La funzione `cleanInputString` dovrebbe avere un loop `for`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Il loop `for` dovrebbe inizializzare una variabile chiamata `i` a `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Il loop `for` dovrebbe avere una condizione che verifica se `i` è minore della lunghezza di `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Il loop `for` dovrebbe incrementare `i` di `1` a ogni esecuzione. Usa l'operatore di incremento per questo. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index 8f4a3b904b0..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: Step 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). Se non lo è, usa `push` per aggiungerlo a `cleanStrArray`. - -# --hints-- - -Il loop `for` dovrebbe avere un'istruzione `if`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Il loop `for` dovrebbe usare `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Il loop `for` dovrebbe aggiungere con `push` `strArray[i]` a `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 04ff31f3508..e2c8671457c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Inizia creando una funzione chiamata `isInvalidInput` – dovrebbe accettare un # --hints-- -Dovresti dichiarare una variabile `isInvalidInput`. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` dovrebbe essere una funzione. ```js diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index c8412e9da0f..7e45d2f6420 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Il prossimo passo è consentire agli utenti di aggiungere delle voci al contator # --hints-- -Dovresti dichiarare una variabile `addEntry`. - -```js -assert.isDefined(addEntry); -``` - -La variabile `addEntry` dovrebbe essere una funzione. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index d90798583b0..ac72cff5f7a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; Variable naming follows specific rules: names can include letters, numbers, dollar signs, and underscores, but cannot contain spaces and must not begin with a number. -Declare a `character` variable in your code. +Use the `let` keyword to declare a variable called `character`. _Note_: It is common practice to end statements in JavaScript with a semicolon. `;` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index 6109c86878c..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: Step 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index 2a5081f1193..00000000000 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: Step 15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -Per verificare se il metodo `Object.freeze()` sta funzionando, puoi provare ad assegnare un nuovo valore a una delle proprietà esistenti. - -Sotto `Object.freeze(myFavoriteFootballTeam)`, assegna la stringa `USA` a `myFavoriteFootballTeam.team`. Di seguito, aggiungi un `console.log` per `myFavoriteFootballTeam.team`. - -Aprendo la console vedrai il messaggio `Uncaught TypeError`. Questo errore appare perché il metodo `Object.freeze()` non consente di sovrascrivere quel valore. - -# --hints-- - -Dovresti assegnare la stringa `USA` a `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -Dovresti aggiungere un `console.log` per `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index df29e216f6f..3299f7e5640 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index 4a57385f4a4..c55f557bea2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 2b96559581a..ca35d8cb859 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index 2127d495c69..1c121cbbe24 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index 7a2868992a3..a948a3abe97 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index 3b0dc49177c..5921b02df5a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index c261f234830..e43281bfd07 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index 94a4fca3725..e294cea800f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index 33c028e6f8d..f38b8d75182 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index d2ba0bf79fb..16ccc63306e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index eba11a73dda..53d017b2ed4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index d2d6bba799e..50fe5063c70 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index a764950fe55..6fd6466c41f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index 55260992c8c..e0ed1bb07a8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index 57ea38a403e..df49e144893 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index 7bf835e2980..7b1f6407aa2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index 5d9e5dd271e..196d33caaba 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index ffd281ac734..263f5430411 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index aa1b27b3b8b..b69f8e0dbbc 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index 0aa5f823400..183f603db5c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index 3f9a4e484cf..f0a96262d2c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index d0d0ec35907..f16eed67bd0 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index 384741e0b08..ec28e791da0 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index 26a74a97b57..91549b48ed9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index 3203771112a..e9d60ef611e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index 1fabc234744..4cc91e39250 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index 9402490339b..2a2f41b15d7 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 2bae11a23b0..648969c6407 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index dbd0cd9c216..8bd550a7d1f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index 8dda4ef7576..b093babd6e6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index fa21bd6da3a..4e834ff31d5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index 842bc8a4014..17eb2dd5e07 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index 2205eb350ad..bc95dc2427b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index 6ebaa3c4d20..5c53e54a2b3 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index 98107575b4c..a924fc3705a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index b0b532869d1..6bece0718f6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index e2a436f03bc..5377018ec25 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index 5fbc8b30693..45e50964b39 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index 613864d4190..ec8df9ecdee 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index 07d46f8ad65..a6fad7652a5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index d4228908e6c..ee2a3835323 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index 91497bea8c7..61b4724c049 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index f315cc7d46b..2ba1a179f7f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index 491c95eae03..935d21b51ef 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 7b529cd64ef..ae90d953bf6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index 4c31deb35df..f8d1379029d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index c738e04771c..39dcf1879e1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index b04359d2956..3c8116ea10e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index b7739a48980..56ae5ea0366 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index b1e42130d25..1c025e2c514 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index 2dff040fb5a..23261f374fd 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 2c6ea832544..5785d1c4ea3 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index e68eda64a9c..a5f4aca84dc 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 4e5e147af02..7ebd7b22680 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index 99efd5ceec7..aacc5fea39e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index c812f27a068..2115b22b20d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index 5d2ae80a2b4..c146d07fc11 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index 0f4fc3974f9..02889219be8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index 8920dab7c38..4fb42945904 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index dbe05f32462..8f1e232a0aa 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index 6b950cdade5..ff6bd38e955 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index f5a84a23ed2..2c220456d6e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index 5ed342ffa7e..f7928e8a3e2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index 551fa4a6b18..ccc80527488 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index 17b2cfdd8e3..6c01c8f751f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index 1f1a93dabab..4730d39973d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index 5b7c3a80f21..53aa9adb57e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index 63cf63173f6..6d82af4b1c9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index d4c48e0dbfc..11391bb63f2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index 2c0000dfc53..816b7daf187 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index e4ed7887401..503146ba1d4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index 1e57d6fbc9c..e9a90c25e3f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 571f6866106..569683589df 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index fd5a47949a7..bbebde2405f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index 72adee2ffb1..c2e05761baa 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index 6613d119870..89443f247b1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index ff926d7c7ce..678cbf06b0d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index bb9eef96089..8e690af9381 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index 861ea76c78b..75eeb5b5805 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index 824ed7ec099..85c09bfa029 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 4a097f992be..48281144f4d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index 493677bc96f..d877c1c5b07 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index 7cdb5a91b8f..7500a6566e9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index 40d1ce96c55..613c62c61a3 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index c567a445722..7d10da11ccd 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index 1353c4ddbaa..b2d1d9bbc1f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index 0bd475bffc7..f680b76ccd0 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index 02fbb7b46f2..466ae496d12 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index 233fd250034..3e5ebfb3a98 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 3479336047f..a0f8b1dc0e4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index d8be9071943..dec0d8a0176 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index ae0200d922b..6b1082544ec 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index 977994840fe..215ad3a1348 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index 7f824971d0c..67f700f766b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index 223994c9b8b..5a2d6e95567 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index c8e72499662..162c806a0f1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index f8760295236..4affcfdb01c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index 62a2c293a42..98324d9a972 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index ac765b1ccf3..fd20f7a69c8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index 29feb0cf613..bbc45daaa21 100644 --- a/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Working with Text Question H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index 05765087c87..75fc123e8a2 100644 --- a/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Working with Text Question I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index e496b6b12a8..35c0cd937ec 100644 --- a/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Working with Text Question J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/italian/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/italian/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 738062e4253..d331943e93c 100644 --- a/curriculum/challenges/italian/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/italian/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 3fcdcc4105c..74aaa2353f6 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialogue 2: Tom Meets the Coworker Next To Him" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index 857d52d4c51..fa5b427fdc5 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Task 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index 4378e29c5a2..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 1b087682364..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --sentence-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## --blanks-- - -`didn't` - -### --feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index b151c618ba5..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index e05d1b4d18c..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 15a7e2d974a..bc57860a94a 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 8ecc2d884fc..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..7f272358313 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index 7f0e05f85c4..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 329730abb2b..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index 08a8c6eb76c..52838f37f84 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 4713f6f90e7..c4b97533063 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index 82ca13e64a4..6672cad0a72 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 3dd315d87d0..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index 905883840d1..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index b8c73e4627d..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..c2978af6438 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index 5c853b53bf8..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index e1bc9517b30..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..e5571f08f36 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..ea4e9a66215 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index 0c3e95d7e70..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 0477289c3a0..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index de300f3817e..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index be0936fbf23..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index df6f482155c..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..6947fe048c2 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..e05448d9d48 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Task 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..aaa7a3890de 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Task 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..ea5416f070f 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Task 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..91066451909 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Task 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..109deef84e4 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Task 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..5bd0b159b4a 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Task 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..527d24103b0 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Task 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..b536269cb5a 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Task 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..9ea5dfd2ec2 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Task 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..0031c5026bb 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Task 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..dc9412ebb8f 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Task 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..53772f4f629 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Task 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..564de6f07b1 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Task 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1f031ee3f1e 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Task 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..f2d572900d8 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Task 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..4b818dc4a70 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Task 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..707eb0d122d 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Task 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..e117e9317d8 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Task 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..5b4096f746c 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Task 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..7221646546e 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Task 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..03428f51432 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Task 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..287f03ddd1e 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Task 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..1538fbae725 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Task 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..331abe3703f 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Task 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..93862c576dc 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Task 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..5afcfa7c916 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Task 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..7937868764f 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Task 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..bf7fa023589 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Task 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..304a2c583d8 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Task 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..98e230933ca 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Task 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..054af388b35 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Task 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..3a5f7c3594b 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Task 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ff7dad74588 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..d41cb232f9c 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Task 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..a29433a1b9a 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Task 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..d29b5313cd6 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Task 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..aa9a85fb288 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Task 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..7eed555b4e1 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Task 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..fd66f011103 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Task 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..198f4c0b6e9 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Task 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..db488ae0a03 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Task 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..fcebb2960ea 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Task 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..b3152c55726 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Task 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..921551d84e0 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Task 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..778df3691d7 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Task 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..cf208824a34 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Task 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..7d49d97efb2 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Task 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..924dc459772 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..32c51e43652 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Task 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..bb730a97243 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Task 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..b96607f08e3 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Task 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..1649db7e147 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Task 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..4d1c3371618 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Task 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..7161861383e 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Task 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..000ef53d2ef 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Task 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..f9abd0109a4 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Task 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..b13756997fc 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Task 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..2de180a58c7 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Task 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..0866794a4e5 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Task 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..610f7a26d7a 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Task 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..185183a0410 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Task 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index a97c197e22e..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index 5674935eed0..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index a966696d7b6..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 39ecfc10ec3..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index e3c77f64da4..00000000000 --- a/curriculum/challenges/italian/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/japanese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index 8d9bffa1e39..922d4a9464a 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: s タグでテキストに取り消し線を引く challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/japanese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/japanese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index aae4f16264e..1c6f207e93d 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: ブラウザのフォールバックで互換性を向上させる challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index 0e836079a64..80e82006e59 100644 --- a/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: ある変数の値を別の変数に割り当てる challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons.md b/curriculum/challenges/japanese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons.md index 625534fbe44..f8bc2bb8556 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons.md @@ -18,7 +18,7 @@ Font Awesome は便利なアイコンライブラリです。 アイコンはウ Font Awesome を使用して、info ボタンに `info-circle` アイコンを追加し、delete ボタンに `trash` アイコンを追加してください。 -**Note:** You can use either `i` or `span` elements to complete this challenge. +**注:** このチャレンジでは、`i` または `span` 要素のどちらを使っても構いません。 # --hints-- diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/jquery/remove-an-element-using-jquery.md b/curriculum/challenges/japanese/03-front-end-development-libraries/jquery/remove-an-element-using-jquery.md index f9866ed3963..7956a48cd3f 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/jquery/remove-an-element-using-jquery.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/jquery/remove-an-element-using-jquery.md @@ -10,7 +10,7 @@ dashedName: remove-an-element-using-jquery jQueryを使用して、ページから HTML 要素を削除しましょう。 -jQuery has a function called `.remove()` that will remove an HTML element entirely. +jQuery には `.remove()` という関数があり、HTML 要素全体を削除します。 `.remove()` 関数を使用して、`#target4` 要素をページから削除してください。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/jquery/target-the-parent-of-an-element-using-jquery.md b/curriculum/challenges/japanese/03-front-end-development-libraries/jquery/target-the-parent-of-an-element-using-jquery.md index e118128ab88..af9c6b8b7c4 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/jquery/target-the-parent-of-an-element-using-jquery.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/jquery/target-the-parent-of-an-element-using-jquery.md @@ -10,7 +10,7 @@ dashedName: target-the-parent-of-an-element-using-jquery すべての HTML 要素には `parent` (親) 要素があり、そこからプロパティを `inherits` (継承) します。 -For example, the `h3` element in your `jQuery Playground` has the parent element of `
`, which itself has the parent element of `body`. +たとえば、`jQuery Playground` の `h3` 要素は `
` という親要素を持ち、それ自身は `body` という親要素を持ちます。 jQuery には `parent()` という関数があり、選択した要素の親要素にアクセスすることができます。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react-and-redux/moving-forward-from-here.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react-and-redux/moving-forward-from-here.md index 1a53fc5491c..1305ea0d1db 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react-and-redux/moving-forward-from-here.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react-and-redux/moving-forward-from-here.md @@ -8,7 +8,7 @@ dashedName: moving-forward-from-here # --description-- -おめでとうございます ! React と Redux のレッスンが終了しました。 次に進む前に、最後に重要なことを一つ説明しておきましょう。 通常はこのようなコードエディターで React アプリケーションを記述することはありません。 This challenge gives you a glimpse of what the syntax looks like if you're working with a file system on your own machine. コードは、`import` ステートメントを使用している部分を除いて似たものになります (これらの import はチャレンジで提供したすべての依存関係を抽出します)。 +おめでとうございます ! React と Redux のレッスンが終了しました。 次に進む前に、最後に重要なことを一つ説明しておきましょう。 通常はこのようなコードエディターで React アプリケーションを記述することはありません。 このチャレンジでは、皆さん自身のマシンのファイルシステムを使用する場合にどのような構文になるかを少しだけ紹介します。 コードは、`import` ステートメントを使用している部分を除いて似たものになります (これらの import はチャレンジで提供したすべての依存関係を抽出します)。 最後に、React と Redux のコードを記述する際、通常はいくつかの設定が必要になります。 この設定はすぐに複雑になる可能性があります。 自分のマシンで試してみたい方は、Create React App というツールを利用すると簡単に設定を完了できます。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react/create-a-controlled-input.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react/create-a-controlled-input.md index 668237307e6..56ae4a6d731 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react/create-a-controlled-input.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react/create-a-controlled-input.md @@ -16,7 +16,7 @@ dashedName: create-a-controlled-input まず、`event` というパラメーターを持つ `handleChange()` というメソッドを作成してください。 このメソッドが呼び出されると、`input` 要素からのテキスト文字列を含む `event` オブジェクトを受け取ります。 この文字列にはメソッドの中で `event.target.value` を使用してアクセスできます。 コンポーネントの `state` の `input` プロパティを、この新しい文字列に更新してください。 -`render` メソッドで、`h4` タグの上に `input` 要素を作成してください。 コンポーネントの `state` の `input` プロパティと等しい `value` 属性を追加してください。 Then add an `onChange` property set to the `handleChange()` event handler method. +`render` メソッドで、`h4` タグの上に `input` 要素を作成してください。 コンポーネントの `state` の `input` プロパティと等しい `value` 属性を追加してください。 そして、`onChange` プロパティを追加して `handleChange()` イベントハンドラ―メソッドを設定してください。 入力ボックスに入力すると、そのテキストは、ローカルの `state` の `input` プロパティとして設定された `handleChange()` メソッドによって処理され、ページ上の `input` ボックスの値としてレンダーされます。 コンポーネントの `state` は、入力データに関して単一の信頼できる情報源になります。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react/introducing-inline-styles.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react/introducing-inline-styles.md index 5834ebe0e3b..5d841a26bb9 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react/introducing-inline-styles.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react/introducing-inline-styles.md @@ -30,7 +30,7 @@ JSX 要素では `style` 属性を使用しますが、JSX のトランスパイ コードエディターで、`div` に `style` 属性を追加し、テキストに赤色を付けて、フォントサイズを `72px` にしてください。 -Note that you can optionally set the font size to be a number, omitting the units `px`, or write it as `"72px"`. +フォントサイズは単位 `px` を省略することで数値でも設定できます。または `"72px"` と記述してください。 # --hints-- コンポーネントで `div` 要素をレンダーします。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react/pass-an-array-as-props.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react/pass-an-array-as-props.md index 4139ac42017..582690b8f6c 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react/pass-an-array-as-props.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react/pass-an-array-as-props.md @@ -22,11 +22,11 @@ dashedName: pass-an-array-as-props const ChildComponent = (props) =>

{props.colors.join(', ')}

``` -This will join all `colors` array items into a comma separated string and produce: `

green, blue, red

`. Later, we will learn about other common methods to render arrays of data in React. +これは `colors` 配列のアイテムすべてをコンマ区切りの文字列に連結し、 `

green, blue, red

` という文字列を生成します。 後ほど、React で配列データをレンダーする一般的な方法を他にもいくつか学習します。 # --instructions-- -コードエディターに `List` コンポーネントと `ToDo` コンポーネントがあります。 `ToDo` コンポーネントから各 `List` をレンダーするときに、to-do タスクの配列 (たとえば `["walk dog", "workout"]` など) が割り当てられた `tasks` プロパティを渡してください。 次に、`List` コンポーネントにあるこの `tasks` 配列にアクセスして、`p` 要素の中に値を表示してください。 Use `join(", ")` to display the `props.tasks` array in the `p` element as a comma-separated list. 今日のリストには少なくとも 2 つのタスクを含め、明日のリストには少なくとも 3 つのタスクを含めてください。 +コードエディターに `List` コンポーネントと `ToDo` コンポーネントがあります。 `ToDo` コンポーネントから各 `List` をレンダーするときに、to-do タスクの配列 (たとえば `["walk dog", "workout"]` など) が割り当てられた `tasks` プロパティを渡してください。 次に、`List` コンポーネントにあるこの `tasks` 配列にアクセスして、`p` 要素の中に値を表示してください。 `join(", ")` を使用し、`props.tasks` 配列をコンマ区切りリストとして `p` 要素に表示してください。 今日のリストには少なくとも 2 つのタスクを含め、明日のリストには少なくとも 3 つのタスクを含めてください。 # --hints-- diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-state-to-toggle-an-element.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-state-to-toggle-an-element.md index ea0aea694e3..76aede3ab6f 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-state-to-toggle-an-element.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-state-to-toggle-an-element.md @@ -65,7 +65,7 @@ assert.strictEqual( ); ``` -Clicking the button element should toggle the `visibility` property in state between `true` and `false` and conditionally render the `h1` element. +ボタン要素をクリックすると、state の `visibility` プロパティが `true` と `false` で交互に切り替わり、その条件に従って `h1` 要素がレンダーされるようにします。 ```js (() => { diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/redux/dispatch-an-action-event.md b/curriculum/challenges/japanese/03-front-end-development-libraries/redux/dispatch-an-action-event.md index 93bbdcad62a..d219379bfb6 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/redux/dispatch-an-action-event.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/redux/dispatch-an-action-event.md @@ -10,7 +10,7 @@ dashedName: dispatch-an-action-event `dispatch` は、アクションを Redux ストアにディスパッチするために使用するメソッドです。 `store.dispatch()` を呼び出して、アクションクリエイターから返された値を渡すと、ストアにアクションが送り返されます。 -Recall that action creators return an object with a type property that specifies the type of action that has occurred. そして、メソッドからアクションオブジェクトを Redux ストアにディスパッチします。 次の行は前のチャレンジの例に基づいていますが、これらは等価であり、どちらもタイプ `LOGIN` のアクションをディスパッチします。 +すでに説明したように、アクションクリエイターは、発生したアクションの型を指定する type プロパティを持つオブジェクトを返します。 そして、メソッドからアクションオブジェクトを Redux ストアにディスパッチします。 次の行は前のチャレンジの例に基づいていますが、これらは等価であり、どちらもタイプ `LOGIN` のアクションをディスパッチします。 ```js store.dispatch(actionCreator()); diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md b/curriculum/challenges/japanese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md index bcb2fbc8e8f..88bfd854320 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md @@ -28,7 +28,7 @@ assert(incAction().type === INCREMENT); assert(decAction().type === DECREMENT); ``` -Running `store.getState()` should return a number +`store.getState()` を実行すると数値が返ります。 ```js assert(typeof store.getState() === 'number'); diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/sass/use-each-to-map-over-items-in-a-list.md b/curriculum/challenges/japanese/03-front-end-development-libraries/sass/use-each-to-map-over-items-in-a-list.md index 4dd945c6a19..55a7cc9b891 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/sass/use-each-to-map-over-items-in-a-list.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/sass/use-each-to-map-over-items-in-a-list.md @@ -44,7 +44,7 @@ $colors: (color1: blue, color2: red, color3: green); # --instructions-- -Write an `@each` directive that goes through a list: `blue, black, red` and assigns each variable to a `.color-bg` class, where the `color` part changes for each item to the respective color. Each class should set the `background-color` to the respective color as well. +リスト `blue, black, red` をひととおり処理して各変数に `.color-bg` クラス (`color` の部分はアイテムごとに対応する色名に変化します) を割り当てる `@each` ディレクティブを記述してください。 各クラスの `background-color` にもそれぞれの色を設定してください。 # --hints-- diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/sass/use-if-and-else-to-add-logic-to-your-styles.md b/curriculum/challenges/japanese/03-front-end-development-libraries/sass/use-if-and-else-to-add-logic-to-your-styles.md index 27aae929705..99843fb534d 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/sass/use-if-and-else-to-add-logic-to-your-styles.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/sass/use-if-and-else-to-add-logic-to-your-styles.md @@ -18,7 +18,7 @@ Sass の `@if` ディレクティブは特定の case をテストするのに } ``` -And just like in JavaScript, the `@else if` and `@else` directives test for more conditions: +JavaScript と同様に、`@else if` と `@else` ディレクティブを使うとテストする条件を増やせます。 ```scss @mixin text-effect($val) { @@ -39,7 +39,7 @@ And just like in JavaScript, the `@else if` and `@else` directives test for more # --instructions-- -パラメーター `$val` を受け取る `border-stroke` というミックスインを作成してください。 The mixin should check for the following conditions using `@if`, `@else if`, and `@else` directives: +パラメーター `$val` を受け取る `border-stroke` というミックスインを作成してください。 ミックスインでは `@if`、`@else if`、`@else` ディレクティブを使用して次の条件をチェックしてください。 ```scss light - 1px solid black @@ -47,7 +47,7 @@ medium - 3px solid black heavy - 6px solid black ``` -If the `$val` parameter value is not `light`, `medium`, or `heavy`, then the `border` property should be set to `none`. +もし `$val` パラメーターの値が `light`、`medium`、`heavy` のいずれでもない場合、`border` プロパティは `none` にしてください。 # --hints-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index d29f7a0dc6a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: ステップ 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index b10680c26c7..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: ステップ 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index 9657c2268cf..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: ステップ 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index f7c84dad87f..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: ステップ 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index 7474f97d62d..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: ステップ 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index e7465437a11..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: ステップ 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index b7c75d27f0d..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: ステップ 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index b30ee113dd3..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: ステップ 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index fd1151856e4..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: ステップ 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index 41caae8ba94..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: ステップ 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index 7337f73b083..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: ステップ 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index 0ebf17eebfb..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: ステップ 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index 41e95f43ed1..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: ステップ 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index bb8e0559a27..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: ステップ 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index ac2a339801a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: ステップ 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index dd3be40c11e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: ステップ 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index 45e4d42f24a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: ステップ 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index b14cc994b98..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: ステップ 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index 71f959cff62..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: ステップ 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index e6c7442e17e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: ステップ 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index e1989c55d66..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: ステップ 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index 580dcf31d00..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: ステップ 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index fab32840fea..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: ステップ 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index e3dafd42b76..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: ステップ 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index d6077884da3..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: ステップ 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 8d2b2f56def..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: ステップ 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index cb3cfc66f3c..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: ステップ 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index 32928dfdef5..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: ステップ 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index d1f8fb6cb7d..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: ステップ 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index ef495f8a24b..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: ステップ 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index b12fe2d9e97..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: ステップ 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index b2edebe5a08..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: ステップ 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index 5f658f3867d..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: ステップ 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index 4905420c3bb..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: ステップ 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index ae6f412b892..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: ステップ 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index da626839b78..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: ステップ 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index 4a734856ae3..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: ステップ 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index 810446bdc41..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: ステップ 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 2ecd21b974b..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: ステップ 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index 09198a839a1..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: ステップ 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index fcc742c2387..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: ステップ 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index 16e8d58372e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: ステップ 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index dcd85c5e182..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: ステップ 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index 3bd890f0a4a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: ステップ 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index 8b3b4ab2132..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: ステップ 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index f9ab94ebf06..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: ステップ 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index 2f7cfee4a62..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: ステップ 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index f14567edb05..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: ステップ 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index 09a07d8acc0..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: ステップ 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index 9618d3bca7d..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: ステップ 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index 24d83c95e8a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: ステップ 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 3dd9b68b300..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: ステップ 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index 497de24561e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: ステップ 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index 985f7948481..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: ステップ 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index f8ed34fa9b7..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: ステップ 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index 293284c7ffe..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: ステップ 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index 4a87d351a25..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: ステップ 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index b977bb159a2..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: ステップ 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index 4511f81cb1a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: ステップ 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 27da91e101e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: ステップ 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index 6f1dcf92ef5..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: ステップ 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index a044a4e5756..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: ステップ 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index eb0dfb061d4..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: ステップ 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index 804a0ec22ce..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: ステップ 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index c423aa2ffd3..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: ステップ 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index 3e099a8f17a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: ステップ 66 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index afe9a4c2a7f..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: ステップ 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index 6692f96d633..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: ステップ 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index a33379dbd5a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: ステップ 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index 8a271d07f29..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: ステップ 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index a1229c3c46a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: ステップ 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index 135592c308e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: ステップ 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index e8ca9fe97a1..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: ステップ 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index 6b5a57f1ca2..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: ステップ 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index 16799ad1e89..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: ステップ 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index b5a66dd9eef..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: ステップ 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index 9d67c148ea3..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: ステップ 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index b2fc5399d87..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: ステップ 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index 5f62115ab67..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: ステップ 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index e18ee86122b..5f7c970fbb7 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -13,7 +13,7 @@ Start by defining a function named `add_expense` that takes three parameters: `e # --hints-- -You should declare a function named `add_expense`. +You should use the `def` keyword to declare a function named `add_expense`. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index 4f744b121eb..4f9cfbececb 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -7,13 +7,13 @@ dashedName: step-2 # --description-- -A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets `[]`, with each item separated from the following one by a comma. +A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets (`[]`), with each item separated from the following one by a comma. ```py numbers = [1, 2, 3, 4] ``` -Create an empty list named `expenses`. You will use it to store each of your expenses. +Use a pair of square brackets to create an empty list named `expenses`. You will use it to store each of your expenses. # --hints-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index 3bd21505059..defef9e644a 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -7,21 +7,29 @@ dashedName: step-3 # --description-- -The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you can use the `.append()` list method: +The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you'll use the `.append()` list method: ```py my_list = [2, 4, 7] my_list.append(3) ``` -In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. +In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. + +Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. # --hints-- You should have `expenses.append()` in your function. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\)/m) +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append()")`)) }) +``` + +You should not have `pass` in your function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("add_expense").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index b4fdfa0f58c..6246aa975cb 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -7,7 +7,7 @@ dashedName: step-4 # --description-- -A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces `{}` and they contain key-value pairs separated by commas. Each key is followed by a colon `:` and the value: +A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces (`{}`) and they contain key-value pairs separated by commas. Each key is followed by a colon (`:`) and the value: ```py {'amount': 50.0, 'category': 'Food'} @@ -19,10 +19,20 @@ Create a dictionary with a key `'amount'` and value of the `amount` parameter an # --hints-- -You should have `expenses.append({'amount': amount})` in your function. +You should pass a dictionary as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) +`)) }) +``` + +You should pass `{'amount': amount}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index 9d62eec6fcb..2117331ae49 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -11,10 +11,20 @@ Add another key-value pair to the dictionary you are appending to the `expense` # --hints-- -You should have `expenses.append({'amount': amount, 'category': category})` in your code. +You should add a second key-value pair to the dictionary you are passing as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*,\s*("|')category\2\s*:\s*category\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) and len(node[0].tree.keys) == 2 +`)) }) +``` + +You should pass `{'amount': amount, 'category': category}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount, 'category': category})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index 79e34d4732a..99eca07af1f 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -Start by defining a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. +Next, define a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. Fill the body of your new function with a `pass` statement. diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index 06fdcc11520..3738105829e 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -11,10 +11,22 @@ Inside the `print_expenses` function, create a `for` loop that iterates over eac # --hints-- -You should have `for expense in expenses:` in your `print_expenses` function. Remember to use `pass` within the loop body. +You should create a `for` loop that iterates over `expenses` in your `print_expenses` function. Remember to use `pass` within the loop body. ```js -({ test: () => assert.match(code, /for\s+expense\s+in\s+expenses\s*:/ ) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_iter().is_equivalent("expenses")`)) }) +``` + +You should use `expense` as the loop variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_vars().is_equivalent("expense")`)) }) +``` + +You should have `pass` only inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index 1e167df75b3..294472ae557 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -9,14 +9,20 @@ dashedName: step-8 Next, you are going to display the details for each expense. -Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. Leave the placeholders empty for now. +Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. # --hints-- -You should have `print(f'Amount: {expense}, Category: {expense}')` in your `for` loop. +You should print `f'Amount: {expense}, Category: {expense}'` in your `for` loop. ```js -({ test: () => assert.match(code, /^\s+print\s*\(\s*f("|')Amount: \{\s*expense\s*\}, Category: \{\s*expense\s*\}\1\s*\)/m) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].has_call("print(f'Amount: {expense}, Category: {expense}')")`)) }) +``` + +You should not have `pass` inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_bodies()[0].has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index b06cc528b3b..873c0150268 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -7,7 +7,12 @@ dashedName: step-9 # --description-- -You can access values in a dictionary through its keys. You need to use the bracket notation and include the key between the square brackets: +In Python, an important thing to know is that the same type of quote used to define a string cannot be used inside it. For example, the string `'I'm a string!'` is not valid. To use the single quote inside that string you should either: + +- Escape the quote by prepending a backlash to it: `'I\'m a string!'` +- Or use double quotes to define the string: `"I'm a string!"` (preferred). + +You can access values in a dictionary through its keys. You need to use bracket notation and include the key between the square brackets: ```py my_dict = {'amount': 50.0, 'category': 'Food'} diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index 3b268df0bfa..7a7f288cb8d 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -7,7 +7,9 @@ dashedName: step-10 # --description-- -You will need a function to calculate the total amount of expenses. Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. +You will need a function to calculate the total amount of expenses. + +Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. # --hints-- @@ -21,7 +23,7 @@ You should define a function named `total_expenses`. }) ``` -Your`total_expenses` function should take a single `expenses` parameter. +Your `total_expenses` function should take a single `expenses` parameter. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index d98269a05d5..306574178e1 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -13,14 +13,22 @@ Lambda functions are brief, anonymous functions in Python, ideal for simple, one lambda x: expr ``` -In the example above, `x` is a parameter to be used in the expression `expr`. Create a `test` variable and assign it a lambda function that takes an `x` parameter and returns `x * 2`. +In the example above, `x` represents a parameter to be used in the expression `expr`, and it acts just like any parameter in a traditional function. `expr` is the expression that gets evaluated and returned when the lambda function is called. + +Create a variable named `test` and assign it a lambda function that takes an `x` parameter and returns `x * 2`. # --hints-- -You should have `test = lambda x: x * 2` in your code. +You should declare a variable named `test`. ```js -({ test: () => assert.match(code,/^test\s*=\s*lambda\s+x\s*:\s*x\s*\*\s*2/m)}) +({ test: () => assert(runPython(`_Node(_code).has_variable("test")`))}) +``` + +You should assign `lambda x: x * 2` to your `test` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_variable("test").is_equivalent("test = lambda x: x * 2")`))}) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index 7068f171df8..663fc088d53 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -13,9 +13,11 @@ Lambda functions can be valuably combined with the `map()` function, which execu map(lambda x: x * 2, [1, 2, 3]) ``` +The function to execute is passed as the first argument, and the iterable is passed as the second argument. + The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index 1719e6a44a6..0d904e4d542 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -1,6 +1,6 @@ --- id: 658238f7604f154ea9a23e1e -title: ステップ 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- @@ -9,7 +9,7 @@ dashedName: step-15 The `sum()` function returns the sum of the items in the iterable which is passed as its argument. You are going to use `sum()` together with `map()` and `lambda` functions to get the total amount of expenses. -For now, make a little test and modify your current `print()` call by passing `sum(map(test, [2, 3, 5, 8]))` as the argument. +For now, make a little test and modify your current `print()` call replacing the `list()` call with a call to the `sum()` function passing it the current `map()` call as the argument. # --hints-- @@ -36,7 +36,7 @@ def total_expenses(expenses): --fcc-editable-region-- test = lambda x: x * 2 -print(map(test, [2, 3, 5, 8])) +print(list(map(test, [2,3,5,8]))) --fcc-editable-region-- expenses = [] diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index f7b3529ca3e..0c4b5191a9a 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -1,28 +1,22 @@ --- id: 65823b0167fd894f4a7ea60a -title: ステップ 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- # --description-- -Next, you are going to implement the same logic to the `total_expenses` function. +Next, you are going to implement the same logic within the `total_expenses` function. For now, delete both the `test` function and the `print()` call. # --hints-- -You should delete your `test` variable. +You should delete your `test` variable and the related `print()` call. ```js -({ test: () => assert.notMatch(code, /test\s*=/) }) -``` - -You should delete your `print(sum(map(test, [2, 3, 5, 8])))` call. - -```js -({ test: () => assert.notMatch(code, /print\s*\(\s*sum/) }) +({ test: () => assert.isFalse(runPython(`_Node(_code).has_variable("test")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index 1bae8814c1b..af93b0e12fc 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -1,27 +1,28 @@ --- id: 65823bbbdb4eaa4f9d20a0fb -title: ステップ 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- # --description-- -Within your `total_expenses` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the value of the `'amount'` key in the `expense` dictionary. +In the `total_expenses` function, you'll now integrate a lambda function. Replace `pass` with a lambda function that has `expense` as its parameter. + +`expense` is expected to be a dictionary, and your lambda function should return the value of the `'amount'` key in the `expense` dictionary. # --hints-- -You should have `lambda expense: expense['amount']` in your `total_expenses` function. +You should create a `lambda` function that uses the parameter `expense` and returns `expense['amount']` in your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_stmt("lambda expense: expense['amount']")`)) }) +``` + +You should not have `pass` in your `total_expenses` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("total_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index d5521ea0f37..c06ab93c264 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -1,6 +1,6 @@ --- id: 65823cfc74aa564ffc460489 -title: ステップ 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- @@ -11,17 +11,22 @@ Now, call `map()` passing your `lambda` function as the first argument and the ` # --hints-- -You should have `map(lambda expense: expense['amount'], expenses)` in your code. +You should call the `map()` function inside the `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("total_expenses").find_calls("map")) == 1`)) }) +``` + +You should pass your `lambda` function as the first argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[0].is_equivalent("lambda expense: expense['amount']")`)) }) +``` + +You should pass the `expenses` list as the second argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index 78da43618ae..29c09ae0262 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -1,6 +1,6 @@ --- id: 65823dde36392f505a39f7c7 -title: ステップ 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- @@ -11,17 +11,10 @@ Finally, pass your `map()` call to the `sum()` function to obtain the total expe # --hints-- -You should return `sum(map(lambda expense: expense['amount'], expenses))` from your `total_expenses` function. +You should call the `sum()` function passing it your current `map()` call as the argument and return the result from your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+sum\s*\(\s*map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_return("sum(map(lambda expense: expense['amount'], expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index a51f95259da..63af9be4151 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -1,6 +1,6 @@ --- id: 65823e87c9741750a22085a7 -title: ステップ 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index bb37760476d..289c306da64 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -1,27 +1,26 @@ --- id: 65823ff0d4b991510fade1a8 -title: ステップ 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- # --description-- -Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category`. +Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -You should have `lambda expense: expense['category'] == category` inside the `filter_expenses_by_category` function. +You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) +``` + +You should not have `pass` inside the `filter_expenses_by_category` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index 3bff1222636..fc8cab1fff0 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -1,6 +1,6 @@ --- id: 65824111a09164518320088d -title: ステップ 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- @@ -13,23 +13,30 @@ The `filter()` function allows you to select items from an iterable, such as a l filter(my_function, my_list) ``` -`filter()` returns an iterator in which the elements of `my_list` are included, for which `my_function` returns `True`. An iterator is a special object that enables you to iterate over the elements of a collection, like a list. +`filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. + +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. # --hints-- -You should have `filter(lambda expense: expense['category'] == category, expenses)` in your `filter_expenses_by_category` function. +You should call `filter()` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")) == 1`)) }) +``` + +You should pass `lambda expense: expense['category'] == category` as the first argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[0].is_equivalent("lambda expense: expense['category'] == category")`)) }) +``` + +You should pass `expenses` as the second argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index 530be671df3..f0f6c12e365 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -1,6 +1,6 @@ --- id: 658244fdf4b0265334711664 -title: ステップ 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- @@ -14,14 +14,7 @@ Finally, return the result of the `filter()` call. You should return the result of the `filter()` call from your `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_return("filter(lambda expense: expense['category'] == category, expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index 871ead794c5..cae351eee31 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -1,6 +1,6 @@ --- id: 65824561f3478e5371a33ae5 -title: ステップ 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- @@ -19,6 +19,8 @@ You should define a function named `main()` without parameters. ({ test: () => assert(runPython(` import inspect inspect.isfunction(main) + sig = str(inspect.signature(main)) + sig == '()' `)) }) ``` @@ -26,12 +28,7 @@ You should define a function named `main()` without parameters. You should move the `expenses` list inside the `main()` function body. ```js -({ test: () => assert(runPython(` - import inspect - sig = str(inspect.signature(main)) - sig == '()' - `)) -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_body().is_equivalent("expenses = []")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 07ec8d09805..23b116aea50 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -1,6 +1,6 @@ --- id: 658246c28575d653d1f89b59 -title: ステップ 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- @@ -18,30 +18,16 @@ Below the `expenses` list, create a `while` loop. Use `True` for the condition, # --hints-- -You should have `while True:` in your `main()` function. +You should create a `while` loop using `True` as the condition within your `main()` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+while\s+True\s*:/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_conditions()[0].is_equivalent("True")`)) }) ``` -You should have `print('\nExpense Tracker')` in your `while` loop. +You should print `'\nExpense Tracker'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')\\nExpense\s*Tracker\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print")[0].is_equivalent("print('\\\\nExpense Tracker')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index 53b68ca97e2..150c7896f1d 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -1,6 +1,6 @@ --- id: 65824872894f59546e3084e2 -title: ステップ 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- @@ -9,21 +9,18 @@ dashedName: step-26 The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. -After the `print()` call, add another one to print the string `'1. Add an expense'`. +After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. # --hints-- -You should have `print('1. Add an expense')` in your `while` loop. +You should print `'1. Add an expense'` within your `while` loop after the existing `print()` call. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')1\.\sAdd\san\sexpense\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index 050fa18bb37..a557268c2db 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -1,6 +1,6 @@ --- id: 65824a1b16631c54fa524154 -title: ステップ 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- @@ -11,17 +11,14 @@ Next, add another `print()` call and pass the string `'2. List all expenses'`. # --hints-- -You should have `print('2. List all expenses')` in your `while` loop. +You should print `'2. List all expenses'` in your `while` loop after the existing `print()` calls. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')2\.\sList\sall\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index 926f953ad0c..662e4d59211 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -1,53 +1,44 @@ --- id: 65824c7b4e2da85597693dcf -title: ステップ 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- # --description-- -Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. +Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. Keep adding the `print()` calls in order. # --hints-- You should have `print('3. Show total expenses')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')3\.\sShow\stotal\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('4. Filter expenses by category')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')4\.\sFilter\sexpenses\sby\scategory\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('5. Exit')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')5\.\sExit\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')", "print('5. Exit')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index 86ed1f420de..6c5f7e20351 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -1,6 +1,6 @@ --- id: 65824dfdb6815d563b2d3256 -title: ステップ 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- @@ -13,17 +13,18 @@ Inside your `while` loop, call the `input()` function passing the string `'Enter # --hints-- -You should have `choice = input('Enter your choice: ')` in your `while` loop. +You should declare a variable named `choice` within your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+choice\s*=\s*input\s*\(\s*("|')Enter\syour\schoice:\s\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].has_variable("choice") +`)) }) +``` + +You should assign the result of the `input()` function, with the string `'Enter your choice: '` as its argument, to your `choice` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_variable("choice").is_equivalent("choice = input('Enter your choice: ')") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 7fd3f4d7ec7..8f20aa4cf58 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -1,6 +1,6 @@ --- id: 6582507654b3ed5712341382 -title: ステップ 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- @@ -15,30 +15,27 @@ Inside the `if` statement body, declare a variable `amount` and assign it an emp # --hints-- -You should have `if choice == '1':` in your `while` loop: +You should create an `if` statement that checks if `choice` is equal to `'1'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[0] +cond.is_equivalent("choice == '1'") or cond.is_equivalent("'1' == choice") +`)) }) ``` -You should have `amount = input()` in your `if` statement body: +You should declare a variable named `amount` in your `if` statement body. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("amount") +`)) }) +``` + +You should assign an empty `input()` call to your `amount` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input()") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index d01b0b91524..15f326cb257 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -1,6 +1,6 @@ --- id: 658252f6b1526d57b103d48a -title: ステップ 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- @@ -13,17 +13,11 @@ Pass the string `'Enter amount: '` to your empty `input()` call, so you can stor # --hints-- -You should have `amount = input('Enter amount: ')` in your `if` statement. +You should pass `'Enter amount: '` to the `input()` call assigned to the `amount` variable. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*("|')Enter amount:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input('Enter amount: ')") +`)) }) ``` # --seed-- @@ -44,7 +38,6 @@ def total_expenses(expenses): def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) ---fcc-editable-region-- def main(): expenses = [] while True: @@ -56,7 +49,7 @@ def main(): print('5. Exit') choice = input('Enter your choice: ') - +--fcc-editable-region-- if choice == '1': amount = input() --fcc-editable-region-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index c5beb83f7c5..275d3f75aac 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -1,6 +1,6 @@ --- id: 658254db6e12485a48130f57 -title: ステップ 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- @@ -13,17 +13,11 @@ Pass `input('Enter amount: ')` to the `float()` function. # --hints-- -You should have `amount = float(input('Enter amount: '))` in your `if` statement. +You should pass `input('Enter amount: ')` to the `float()` function in the assignment of `amount`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = float(input('Enter amount: '))") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index f3898db760d..0249ed79c87 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -1,27 +1,26 @@ --- id: 658255d5f955175b270f251d -title: ステップ 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- # --description-- -Inside your `if` statement, create a variable `category` to store the expense category. Assign it `input('Enter category: ')`. +Inside your `if` statement, create a variable named `category` to store the expense category. Assign it a call to `input()` and use the `'Enter category: '` as the argument. # --hints-- -You should have `category = input('Enter category: ')` in your `if` statement. +You should declare a variable named `category` in your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("category")`)) }) +``` + +You should assign `input('Enter category: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("category").is_equivalent("category = input('Enter category: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index 120e228d0ec..fd25bf41ee6 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -1,13 +1,13 @@ --- id: 6582575b8089f85b8b92d7c8 -title: ステップ 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- # --description-- -After getting the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. +Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. @@ -17,17 +17,22 @@ After getting the `amount` and `category` using `input()`, call the `add_expense # --hints-- -You should have `add_expense(expenses, amount, category)` in your `if` statement. +You should call the `add_expense()` function within your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)\s*add_expense\s*\(\s*expenses\s*,\s*amount\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_calls("add_expense")) == 1`)) }) +``` + +You should pass three arguments to your `add_expense()` call: `expenses`, `amount`, and `category`. The order matters. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_call("add_expense(expenses, amount, category)")`)) }) +``` + +Your `add_expense()` call should come after the assignment of `amount` and `category`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].is_equivalent("amount = float(input('Enter amount: '))\\ncategory = input('Enter category: ')\\nadd_expense(expenses, amount, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index e6719423948..7ca152b9bde 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -1,42 +1,31 @@ --- id: 658258c0e5fbe85c14c060cf -title: ステップ 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- # --description-- -To list all expenses, you can use an `elif` statement after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. +To list all expenses, you can use an `elif` clause after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. -Create an `elif` statement to check if the user's choice equals the string `2`. Inside the `elif` statement, print the string `'\nAll Expenses:'`. +Create an `elif` clause to check if the user's choice equals the string `'2'`. Inside the `elif` clause, print the string `'\nAll Expenses:'`. # --hints-- -You should have `elif choice == '2':` after your `if` statement. +You should create an `elif` clause that checks that `choice` is equal to `'2'` after your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[1] +cond.is_equivalent("choice == '2'") or cond.is_equivalent("'2' == choice") +`)) }) ``` -You should have `print('\nAll Expenses:')` inside your `elif` statement. +You should print `'\nAll Expenses:'` inside your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index 853d5d668b7..0bc3402cf58 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -1,6 +1,6 @@ --- id: 65825a9520a0795c8afbef50 -title: ステップ 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- @@ -11,17 +11,16 @@ After the `print()` call, call the `print_expenses` function to display all the # --hints-- -You should have `print_expenses(expenses)` in your `elif` statement. +You should call the `print_expenses()` function within your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)\s*print\s*_expenses\s*\(\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].find_calls("print_expenses")) == 1`)) }) +``` + +You should pass the `expenses` list as the argument to your `print_expenses()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print_expenses(expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index 2ecdbffc6e8..6c1297bc068 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -1,6 +1,6 @@ --- id: 65825b758fe85a5cebabc8c5 -title: ステップ 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- @@ -13,30 +13,19 @@ If it's true, it means the user wants to see the total expenses. So call `print( # --hints-- -You should have `elif choice == '3':` in your code. +You should create an `elif` clause that checks if `choice == '3'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert.match(function_body, /\s+elif\s+choice\s*==\s*("|')3\1\s*:/); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[2] +cond.is_equivalent("choice == '3'") or cond.is_equivalent("'3' == choice") +`)) }) ``` -You should have `print('\nTotal Expenses: ', total_expenses(expenses))` in your `elif` statement. +You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')3\1\s*:\s*print\s*\(\s*("|')\\nTotal\sExpenses:\s\2\s*,\s*total_expenses\s*\(\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[2].has_call("print('\\\\nTotal Expenses: ', total_expenses(expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index 20783f47803..676b0ec42f7 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -1,40 +1,35 @@ --- id: 65825cda2668995d5168e37c -title: ステップ 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- # --description-- -Create another `elif` statement that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. +Create another `elif` clause that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. # --hints-- -You should have `elif choice == '4':` in your code. +You should create an `elif` clause that checks if `choice == '4'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[3] +cond.is_equivalent("choice == '4'") or cond.is_equivalent("'4' == choice") +`)) }) ``` -You should have `category = input('Enter category to filter: ')` in your new `elif` statement. +You should declared a variable named `category` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("category")`)) }) +``` + +You should assign `input('Enter category to filter: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("category").is_equivalent("category = input('Enter category to filter: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index 36e1b5effce..d354cb667cb 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -1,6 +1,6 @@ --- id: 65825e96b5db5f5dee6bf57c -title: ステップ 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- @@ -11,17 +11,10 @@ After getting the category, print the following f-string `f'\nExpenses for {cate # --hints-- -You should print `f'\nExpenses for {category}:'` inside the `elif` statement. +You should print `f'\nExpenses for {category}:'` after the assignment of `category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index bc207ad4231..669de4ae215 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -1,6 +1,6 @@ --- id: 6582601b2987045e8e7da994 -title: ステップ 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- @@ -11,17 +11,22 @@ After your `print()` call, you need to filter the expenses and print the filtere # --hints-- -You should have `expenses_from_category = filter_expenses_by_category(expenses, category)` in your `elif` statement. +You should declare a variable named `expenses_from_category` in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("expenses_from_category")`)) }) +``` + +You should call `filter_expenses_by_category()` passing `expenses` and `category` as the arguments and assign it to your `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("expenses_from_category").is_equivalent("expenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) +``` + +Your `expenses_from_category` variable should come after the `print()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index 2b082eb0ef9..4801aa6d338 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -1,27 +1,26 @@ --- id: 6582622cb6c11a5f4c5d79b4 -title: ステップ 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- # --description-- -Still within the `elif` statement, pass `expenses_from_category` iterator to a `print_expenses` call. +Still within the `elif` clause, pass the `expenses_from_category` iterator to a `print_expenses` call. # --hints-- -You should have `print_expenses(expenses_from_category)` in your code. +You should call `print_expenses()` passing `expenses_from_category` as the argument in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)\s*print_expenses\s*\(\s*expenses_from_category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_call("print_expenses(expenses_from_category)")`)) }) +``` + +Your `print_expenses()` call should come after the `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)\\nprint_expenses(expenses_from_category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index cefae917dd3..911a95cf962 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -1,42 +1,31 @@ --- id: 6582687859366a618424d84b -title: ステップ 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- # --description-- -To provide a way to exit the program, use another `elif` statement to check if `choice` equals the string `'5'`. +To provide a way to exit the program, use another `elif` clause to check if `choice` equals the string `'5'`. -Inside the new `elif` statement, print the string `'Exiting the program.'` to show that the program is terminating its execution. +Inside the new `elif` clause, print the string `'Exiting the program.'` to show that the program is terminating its execution. # --hints-- -You should have `elif choice == '5':` in your code. +You should create an `elif` clause that checks if `choice == '5'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4] +cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice") +`)) }) ``` -You should print `'Exiting the program.'` in your new `elif` statement. +You should print `'Exiting the program.'` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:\s*print\s*\(\s*("|')Exiting\sthe\sprogram.\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 46829312024..712c3072018 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -1,27 +1,20 @@ --- id: 65826a6e9d189a623141c726 -title: ステップ 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- # --description-- -Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` statement. +Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` clause. # --hints-- -You should have a `break` statement inside your last `elif`. +You should have a `break` statement after the `print()` call inside your last `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+break/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].is_equivalent("print('Exiting the program.')\\nbreak")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index 64d9e6b7eb9..f2fec123e71 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -1,13 +1,15 @@ --- id: 65826af5b226a5628aa154b1 -title: ステップ 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- # --description-- -Finally, call your `main()` function, and try the expense tracker program. +Finally, call your `main()` function, and try the expense tracker program in the console. + +With that, the expense tracker project is complete! # --hints-- @@ -74,3 +76,58 @@ def main(): --fcc-editable-region-- ``` + +# --solutions-- + +```py +def add_expense(expenses, amount, category): + expenses.append({'amount': amount, 'category': category}) + +def print_expenses(expenses): + for expense in expenses: + print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') + +def total_expenses(expenses): + return sum(map(lambda expense: expense['amount'], expenses)) + +def filter_expenses_by_category(expenses, category): + return filter(lambda expense: expense['category'] == category, expenses) + + +def main(): + expenses = [] + while True: + print('\nExpense Tracker') + print('1. Add an expense') + print('2. List all expenses') + print('3. Show total expenses') + print('4. Filter expenses by category') + print('5. Exit') + + choice = input('Enter your choice: ') + + if choice == '1': + amount = float(input('Enter amount: ')) + category = input('Enter category: ') + add_expense(expenses, amount, category) + + elif choice == '2': + print('\nAll Expenses:') + print_expenses(expenses) + + elif choice == '3': + print('\nTotal Expenses: ', total_expenses(expenses)) + + elif choice == '4': + category = input('Enter category to filter: ') + print(f'\nExpenses for {category}:') + expenses_from_category = filter_expenses_by_category(expenses, category) + print_expenses(expenses_from_category) + + elif choice == '5': + print('Exiting the program.') + break + +main() + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index c7e2e2dfb60..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: ステップ 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index 7c3503ce875..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: ステップ 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index 23e38b56555..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: ステップ 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index ce8af28c507..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: ステップ 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index 5e0ac958054..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: ステップ 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index cc0ab36fe6f..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: ステップ 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index f3b891ced9f..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: ステップ 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index 749fbcc1277..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: ステップ 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index 098f1e7a879..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: ステップ 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index 7894f293b7d..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: ステップ 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index 82872db7838..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: ステップ 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index f75a5f20e00..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: ステップ 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 20949339715..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: ステップ 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 5738cb5b66b..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: ステップ 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index 7312090f3d0..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: ステップ 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index 2b93fea9f2b..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: ステップ 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index 91c17afe43c..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: ステップ 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index 63e43a09103..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: ステップ 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index f77fd8240af..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: ステップ 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index 7a4e0e12a20..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: ステップ 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index 274c4938539..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: ステップ 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index d97d68aca5a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: ステップ 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index d4d2a2c657a..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: ステップ 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Write another `if` statement that checks if the target key is less than the key of the current node. - -Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. - -# --hints-- - -You should write another `if` statement to check if `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -You should return `self._search(node.left, key)` from your new `if` block. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index 230a854dae3..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: ステップ 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index ce4eea22729..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: ステップ 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index 238f22781f1..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: ステップ 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 7318e190707..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: ステップ 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index af524eb3335..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: ステップ 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index 5c6dd9bb0fd..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: ステップ 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index 08bcaad4cf4..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: ステップ 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index 35d4bcfc149..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: ステップ 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index 754438963c8..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: ステップ 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index 2d9d225a599..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: ステップ 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index 506f99acb0e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: ステップ 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Remember to use the `pass` keyword. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index 4435d54430f..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: ステップ 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index 5800d27d2ad..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: ステップ 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index 73c8a49c4a8..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: ステップ 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index 116f16c317d..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: ステップ 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index 6654eeb89ae..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: ステップ 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index 6e69f161583..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: ステップ 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index bf14e8ecfaf..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: ステップ 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index 659d6bc5cf0..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: ステップ 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index ee3039e680b..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: ステップ 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index cef51eee07c..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: ステップ 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index 84782c93071..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: ステップ 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index f9c48de412e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: ステップ 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index 8e637bdf219..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: ステップ 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index 7966503ad2d..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: ステップ 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index 8cbc65396ba..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: ステップ 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index 540a075f546..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: ステップ 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index b9bc3e0326b..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: ステップ 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index af27d54060e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: ステップ 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index d58ccd87772..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: ステップ 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index 818e0ca2b6f..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: ステップ 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 888dc49d759..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: ステップ 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index d8d881c8fd8..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: ステップ 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index 18b9f887452..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: ステップ 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index baae5ed2958..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: ステップ 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index 91db203c1eb..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: ステップ 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index b2758a7abfc..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: ステップ 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index e73b07f8909..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: ステップ 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index 649ce350a06..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: 計算の縦書き整形プログラム -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -小学校の算数では計算問題を解きやすくするために縦書きにすることが多くあります。 たとえば「235 + 52」を次のように記述します。 - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. この関数はオプションで第 2 引数を受け取れるようにしてください。 第 2 引数が `True` に設定されている場合は、解答を表示する必要があります。 - -## 例 - -関数呼び出し: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -出力: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -関数呼び出し: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -出力: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## ルール - -入力された問題が正しく整形されている場合、この関数は正しい変換結果を返します。それ以外の場合は、ユーザーにとって意味のあるエラーを記述した**文字列**を**返します**。 - -- エラーを返す場合: - - 関数に入力した**問題の数が多すぎる**場合。 The limit is **five**, anything more will return: `'Error: Too many problems.'` - - 関数が受け取ることのできる適切な演算子は**足し算**と**引き算**です。 掛け算と割り算はエラーを返します。 この箇条書きで指示していない他の演算子についてはテストする必要はありません。 The error returned will be: `"Error: Operator must be '+' or '-'."` - - 数値 (オペランド) にはそれぞれ数字だけしか入れることができません。 Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - それぞれのオペランド (演算子の両側の数値) の幅は最大 4 桁です。 Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- ユーザーが問題を正しい形式で入力した場合は、次のルールに従って変換結果を返します。 - - 2 つの項の長い方と演算子の間が、スペース 1 つ分空くようにしてください。演算子は 2 つ目の項と同じ行に置き、両方の項は与えられたとおりの順序に配置してください (1 つ目の項を上に、2 つ目の項を下に配置してください) 。 - - 数値は右揃えにする必要があります。 - - それぞれの問題の間に 4 つのスペースが必要です。 - - それぞれの問題の一番下にダッシュが必要です。 ダッシュは、各問題の全体の長さに沿った長さにする必要があります (上の表示例を参考にしてください) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index 9c78197e210..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: 予算アプリ -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. このクラスは *food* (食費)、*clothing* (服飾費)、*entertainment* (娯楽費) など、さまざまな予算のカテゴリーに応じてオブジェクトをインスタンス化できるようにする必要があります。 オブジェクトを作成する際に、カテゴリーの名前をオブジェクトに渡します。 クラスには、リスト型の `ledger` (帳簿) というインスタンス変数を持たせてください。 このクラスには次のメソッドも含める必要があります。 - -- `deposit` (預け入れ) メソッド。金額と説明を受け取ります。 説明がない場合は、デフォルトで空の文字列にします。 このメソッドでは、`{"amount": amount, "description": description}` という形式で帳簿リストの末尾にオブジェクトを追加する必要があります。 -- `withdraw` (引き出し) メソッド。`deposit` メソッドに似ていますが、渡された金額を負の数として帳簿に保存する必要があります。 十分な資金がない場合は、帳簿に何も追加しないでください。 このメソッドは、引き出しが行われた場合は `True` を返し、それ以外の場合は `False` を返す必要があります。 -- `get_balance` (残高確認) メソッド。発生した入出金に基づいて予算カテゴリの現在の残高を返します。 -- `transfer` (送金) メソッド。引数として金額と別の予算カテゴリを受け取ります。 このメソッドでは、金額と "Transfer to [Destination Budget Category]" ([送金先の予算カテゴリ] への送金) という記述からなる出金を追加する必要があります。 そして、金額と "Transfer from [Destination Budget Category]" ([送金元の予算カテゴリ] からの送金) という記述からなる入金額が送金先予算カテゴリに追加されます。 十分な資金がない場合は、どちらの帳簿にも何も追加しないでください。 このメソッドは、送金が行われた場合は `True` を返し、それ以外の場合は `False` を返す必要があります。 -- `check_funds` (資金確認) メソッド。引数として金額を受け取ります。 金額が予算カテゴリの残高よりも大きい場合は `False` を返し、それ以外の場合は `True` を返します。 このメソッドは `withdraw` メソッドと `transfer` メソッドの両方で使用する必要があります。 - -予算オブジェクトを出力するときは以下の項目を表示する必要があります。 - -- 30 文字のタイトル行。`*` 文字を並べて 1 行とし、中央にカテゴリの名前を置きます。 -- 帳簿にある品目のリスト。 各行に説明と金額を表示します。 説明の最初の 23 文字を表示し、その後に金額を表示します。 金額は右揃えで、小数点以下 2 桁までを含み、最大 7 文字まで表示します。 -- カテゴリの合計を表示する行。 - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -`Category` クラスの他に、カテゴリのリストを引数に取る `create_spend_chart` という関数を (クラスの外で) 作成してください。 この関数は棒グラフとなる文字列を返す必要があります。 - -グラフでは、関数に渡された各カテゴリについて、その出費の割合を表示するようにしてください。 出費の割合は、引き出し額でのみ計算する必要があり、預け入れ額では計算しません。 グラフの左端に沿って、0 ~ 100 のラベルを付けてください。 棒グラフの「棒」は文字 "o" を使用して作成してください。 各棒の高さは最も近い 10 ごとの数字に切り下げる必要があります。 グラフの下の水平線は最後の棒からスペース 2 つ分だけ伸ばす必要があります。 各カテゴリ名は棒の下に縦書きで表示してください。 一番上には "Percentage spent by category" (カテゴリ別の出費の割合) というタイトルを付けてください。 - -この関数は最大 4 つのカテゴリでテストされます。 - -次の出力例を参考にして、出力の間隔を例と正確に合わせてください。 - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 6a4f0822386..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: 四角形の面積計算プログラム -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Rectangle クラス - -Rectangle オブジェクトを作成する際、`width` 属性と `height` 属性を与えて初期化できるようにします。 このクラスには次のメソッドも含める必要があります。 - -- `set_width` -- `set_height` -- `get_area`: 面積を返します (`width * height`) -- `get_perimeter`: 外周を返します (`2 * width + 2 * height`) -- `get_diagonal`: 対角線を返します(`(width ** 2 + height ** 2) ** .5`) -- `get_picture`: "\*" の行を使用して図形を表す文字列を返します。 行数は高さと等しく、各行の"\*"の数は幅と等しくする必要があります。 各行の末尾に改行 (`\n`) が必要です。 幅または高さが 50 より大きい場合は、文字列 "Too big for picture." を返す必要があります。 -- `get_amount_inside`: 引数として別の図形 (正方形または長方形) を受け取ります。 渡された図形が、その図形の中に何個収まるかを返します (回転はしません)。 たとえば、幅が 4 で高さが 8 の長方形には、一辺が 4 の正方形が 2つ収まります。 - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Square クラス - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## 使用例 - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -上記のコードは次を返す必要があります。 - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index db9d48ca76c..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: 確率計算プログラム -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -帽子があり、その中に青いボールが 5 個、赤いボールが 4 個、緑のボールが 2 個入っているとします。 4 個のボールを無作為に取り出す場合、赤のボールが 1 個以上、緑のボールが 2 個含まれる確率は、いくらになりますか? 高度な数学を駆使して確率を計算することも可能ですが、試行を多数繰り返しておおよその確率を推定するプログラムを記述する方が簡単です。 - -このプロジェクトでは、特定のボールを帽子から無作為に取り出す場合のおおよその確率を測定するプログラムを記述します。 - -First, create a `Hat` class in `main.py`. このクラスは、帽子に入っている各色のボールの数を指定する可変個の引数を受け取る必要があります。 たとえば、次のどの方法でもクラスオブジェクトを作成することができます。 - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -帽子は常に、少なくとも 1 個のボールが入った状態で作成されます。 帽子オブジェクトの作成時に渡された引数を、`contents` インスタンス変数に変換する必要があります。 `contents` は、帽子に入っているボールごとに要素を 1 つずつ含む文字列のリストである必要があります。 リスト内の各要素は色の名前であり、その色のボール 1 個を表します。 たとえば、帽子が `{"red": 2, "blue": 1}` で表される場合、`contents` は `["red", "red", "blue"]` となる必要があります。 - -`Hat` クラスには `draw` メソッドが必要です。このメソッドは、帽子から取り出すボールの個数を示す引数を受け取ります。 draw メソッドは、`contents` からボールを無作為に取り除き、それらのボールを文字列のリストとして返します。 元に戻さないタイプの「壺問題」と同様に、取り出したボールは帽子に戻さないものとします。 取り出すボールの数が取り出せる数を超える場合は、すべてのボールを返してください。 - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). この関数は次の引数を受け取る必要があります。 - -- `hat`: 関数内でコピーする必要のあるボールを含む帽子オブジェクト。 -- `expected_balls`: 試行で帽子から取り出そうとするボールの正確なグループを示すオブジェクト。 たとえば、青のボール 2 個と赤のボール 1 個を帽子から取り出す確率を調べるには、`expected_balls` を `{"blue":2, "red":1}` に設定します。 -- `num_balls_drawn`: 各試行で帽子から取り出すボールの数。 -- `num_experiments`: 実行する試行の回数 (試行の回数が多いほど、おおよその確率の正確性が高まります)。 - -`experiment` 関数は、確率を返す必要があります。 - -たとえば、黒を 6 個、赤を 4 個、緑を 3 個含む帽子から 5 個のボールを取り出す場合に、赤のボールが少なくとも 2 個、緑のボールが少なくとも 1 個含まれる確率を求めたいとしましょう。 それには、試行を `N` 回行い、赤のボールが少なくとも 2 個、緑のボールが少なくとも 1 個になった回数 `M` を数え、確率を `M/N` として推定します。 各回の試行ではそれぞれ、指定されたボールの入った帽子の状態から始め、いくつかのボールを取り出し、期待されるボールを取り出したかどうかを確認します。 - -上記の例で 2000 回の実験を行う場合は、`experiment` 関数を次のように呼び出します。 - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -この方法は無作為抽出に基づいているため、コードが実行されるたびに確率が多少変わります。 - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index c9108cfa66e..00000000000 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: 時刻計算プログラム -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -次の 2 つの必須パラメーターと 1 つのオプションパラメーターを受け取る関数 `add_time` を記述してください。 - -- 12 時間制形式の開始時刻 (末尾に AM または PM) -- 時数と分数で示される経過時間 -- (オプション) 開始の曜日 (大文字小文字は区別しない) - -関数は、開始時刻に経過時間を足して、その結果を返すようにしてください。 - -結果が翌日になる場合は、時刻の後に `(next day)` を表示してください。 結果が翌日よりさらに後になる場合は、時刻の後に `(n days later)` を表示してください。この "n" は何日後かを示す数です。 - -関数にオプションの開始曜日パラメーターが与えられた場合は、結果の曜日を出力に表示してください。 出力の曜日は、時刻の後、「n 日後」の前に表示する必要があります。 - -関数が扱うさまざまなケースの例を以下に示します。 結果のスペースと句読点の表示に特に注意してください。 - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -Python ライブラリはインポートしないでください。 開始時刻は有効な時刻であると仮定して構いません。 経過時間の分数は 60 未満の整数になりますが、時数は任意の整数になります。 - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index 8cba4bb1e41..50eefa97036 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -このプロジェクトでは、カフェのメニューを作成しながら CSS (Cascading Style Sheets) の基礎を学びます。 CSS は、HTML 文書のスタイル設定に使われる言語です。 CSS を使って、HTML 要素が画面にどのように表示されるべきかを記述します。 +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS は、HTML 文書のスタイル設定に使われる言語です。 CSS を使って、HTML 要素が画面にどのように表示されるべきかを記述します。 猫の写真アプリの最後の数ステップで学んだように、ウェブページを作り始めるのに必要な基本構造があります。 HTML 文書には `DOCTYPE` 宣言と `html` 要素が必要です。 `DOCTYPE` は、この文書がどのバージョンの HTML で書かれているかをブラウザに伝えます。 そして `html` 要素は、他すべての要素を内包するルート要素を表します。 diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index 5d8bc410e8a..c17c605a4b6 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -`.cat-left-ear` の要素の中に、もう 1 つ `div` 要素を作成して、`cat-left-inner-ear` というクラスを持たせてください。 +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -既存の、`cat-left-ear` クラスを持つ `div` 要素は変更しないでください。 +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -`.cat-left-ear` の要素内に`div` 要素を 1 つ作成してください。 +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -`div` 要素にクラス `cat-left-inner-ear` を設定してください。 +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index e45bc705c6c..00000000000 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: ステップ 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -`.cat-right-ear` の要素の中に、もう 1 つ `div` 要素を作成して、`cat-right-inner-ear` というクラスを持たせてください。 - -# --hints-- - -既存の、`cat-right-ear` クラスを持つ `div` 要素は変更しないでください。 - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -`.cat-right-ear` の要素内に`div` 要素を 1 つ作成してください。 - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -`div` 要素にクラス `cat-right-inner-ear` を設定してください。 - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index f603296ffc8..7a6bd2e3473 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: ステップ 23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index 987149891d0..8370b4ab7b7 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: ステップ 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index e6cf34c3eec..279089af90c 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: ステップ 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index e6db49dba14..5f776a2c863 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: ステップ 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index febfeea04b4..2d3d436d760 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: ステップ 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index 35c73241697..288f06d192f 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: ステップ 28 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index 8c2914fc5db..e801673eebe 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: ステップ 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ dashedName: step-29 # --hints-- -`.right-ear` の要素の `transform` プロパティを `rotate(45deg)` に設定してください。 セミコロンを忘れないようにしましょう。 +`.cat-right-ear` の要素の `transform` プロパティを `rotate(45deg)` に設定してください。 セミコロンを忘れないようにしましょう。 ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index 7257f5a5c02..0aa7c82b765 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: ステップ 30 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index dce0048f5ef..1e0ef0de226 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: ステップ 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index 51a5c48ba5a..4d62f071c4b 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: ステップ 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index 16b508c6ede..89cefbac127 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,8 +1,8 @@ --- id: 646cfde6ac612e5d60391f50 -title: ステップ 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index 5ed90775c24..36eb1d84b9a 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: ステップ 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index b476c2dbaff..e25f3d53fa8 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: ステップ 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index 9da4d2e7275..5d5a8b03da7 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: ステップ 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index 4fd60eb372b..d5c2ea0d2ed 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: ステップ 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index b61da1d7e6c..49ed5d0c5d9 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: ステップ 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index 359d9f0c3c0..9d095e3154a 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: ステップ 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index 4850de2df7a..6e3d472b0aa 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: ステップ 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- では猫の目に取り掛かりましょう。 耳と同じように、目にも内側部分を作ります。 -`div` 要素を作成して、`cat-eyes` というクラスを設定しましょう。 `cat-eyes` の要素の内側に 2 つの `div` 要素を追加して、それぞれ `cat-left-eye` と `cat-right-eye` のクラスを設定してください。 +`div` 要素を作成して、`cat-eyes` というクラスを設定しましょう。 `.cat-eyes` の要素の内側に 2 つの `div` 要素を追加して、それぞれ `cat-left-eye` と `cat-right-eye` のクラスを設定してください。 # --hints-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index 79a083aefff..060de217c31 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -1,13 +1,13 @@ --- id: 646ddd3f9f97a0667b964bdb -title: ステップ 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- -`.cat-left-eye` の要素の中に、もう 1 つ `div` 要素を作成して、`cat-left-inner-eye` というクラスを持たせてください。 +Create two `div` elements, one with the class `cat-left-inner-eye` inside the `.cat-left-eye` element and another with the class `cat-right-inner-eye` inside the `.cat-right-eye` element. # --hints-- @@ -17,18 +17,36 @@ dashedName: step-41 assert(document.querySelectorAll('div.cat-left-eye').length === 1); ``` -`.cat-left-eye` の要素内に`div` 要素を 1 つ作成してください。 +You should not change the existing `div` element with the class `.cat-right-eye`. + +```js +assert(document.querySelectorAll('div.cat-right-eye').length === 1); +``` + +You should have one `div` element inside your `.cat-left-eye` element. ```js assert(document.querySelectorAll('.cat-left-eye div').length === 1); ``` -`div` 要素にクラス `cat-left-inner-eye` を設定してください。 +You should have one `div` element inside your `.cat-right-eye` element. + +```js +assert(document.querySelectorAll('.cat-right-eye div').length === 1); +``` + +The new `div` element inside `.cat-left-eye` should have the class `cat-left-inner-eye`. ```js assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('cat-left-inner-eye')); ``` +The new `div` element inside `.cat-right-eye` should have the class `cat-right-inner-eye`. + +```js +assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); +``` + # --seed-- ## --seed-contents-- @@ -57,9 +75,11 @@ assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index 767b393c953..00000000000 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: ステップ 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -`.cat-right-eye` の要素の中に、もう 1 つ `div` 要素を作成して、`cat-right-inner-eye` というクラスを持たせてください。 - -# --hints-- - -既存の、`cat-left-eye` クラスを持つ `div` 要素は変更しないでください。 - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -`.cat-right-eye` の要素内に`div` 要素を 1 つ作成してください。 - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -`div` 要素にクラス `cat-right-inner-eye` を設定してください。 - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index 97869eed2b9..000735b68c7 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: ステップ 43 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index f200b52e680..a16273c2b1a 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: ステップ 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -向かって左の目の位置を調整するために、`position` プロパティを `absolute` に、`top` を `54px` に、`left` を `39px` に設定してください。 +左目の位置を調整するために、`position` プロパティを `absolute` に、`top` を `54px` に、`left` を `39px` に設定してください。 # --hints-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index 14f78910216..777aa26c1b1 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: ステップ 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index b5ab25c0cef..e996aef3ad2 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: ステップ 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index 93d2031a1aa..b5f2a3c6503 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: ステップ 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index 7fac655f1ce..ba72190bcff 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: ステップ 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index d0eb7b9aaff..213201c800e 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: ステップ 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index af03441c350..cc671e4695a 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: ステップ 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index c37d61df19a..96ffe6de90c 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: ステップ 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index 829ada82b02..ef0b9bc85ca 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -1,8 +1,8 @@ --- id: 646dec359bef3b7811fba5a6 -title: ステップ 52 +title: Step 50 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index 43d7aa77de2..1a39beddc7e 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: ステップ 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index 224e3c3ed93..5fa13da817b 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: ステップ 54 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index 4a033885198..48c7b113dc0 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: ステップ 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index ff342b5cdb5..6ab2c51e5fe 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: ステップ 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index d6299d885ae..f1f2601b3cf 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: ステップ 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index ec2f2fe99b3..6bf30de7263 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: ステップ 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index e2d138df04f..1002cfc10b8 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: ステップ 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ dashedName: step-61 # --hints-- -`cat-mouth-line-left` セレクターが必要です。 +`.cat-mouth-line-left` セレクターが必要です。 ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index 6ed7c21cb07..31d6a62dc59 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: ステップ 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index 5744cbca875..97b2a58adb2 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: ステップ 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index d1054a8abef..e2900c622fe 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: ステップ 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ dashedName: step-64 # --hints-- -`.cat-mouth-line-left` セレクターの `transform` プロパティを `rotate(165deg)` に設定してください。 +`.cat-mouth-line-right` セレクターの `transform` プロパティを `rotate(165deg)` に設定してください。 ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index bf11fce321f..6bc58301f49 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: ステップ 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index 93a025648a7..a8fc6b2b6b4 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -1,8 +1,8 @@ --- id: 646f0ef13604420a8744f7d4 -title: ステップ 66 +title: Step 64 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index ad2705405fc..e8f03a38aea 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: ステップ 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index c0f4e12634e..e54eb02a1f3 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: ステップ 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index f4859896a9a..d10e5bdf3d9 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: ステップ 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index bd9110604ba..6db877bd965 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: ステップ 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index 34691634a30..983c1e722bc 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: ステップ 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index 28273cbeefe..83be904d6d7 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: ステップ 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index 9c5fea13f2c..7479cfe1073 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: ステップ 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index 5222fcd2e36..0d9366d00d8 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: ステップ 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index 6742e001b96..bd5b94a2267 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: ステップ 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index 98594fa3bde..7fa5be97b5f 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: ステップ 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index 8a464feeebd..bc9ec7db2e4 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: ステップ 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index 616dc501b14..8405f644cde 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: ステップ 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -クラスセレクターを使用して `cat-whisker-right-middle` の要素を選択し、`position` を `absolute`、`top` を `127px`、`left` を `109px` に設定して、右の真ん中のひげを適切な位置に動かしましょう。 +クラスセレクターを使用して `.cat-whisker-right-middle` の要素を選択し、`position` を `absolute`、`top` を `127px`、`left` を `109px` に設定して、右の真ん中のひげを適切な位置に動かしましょう。 # --hints-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index 87b5399b7ab..b3b57e01082 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: ステップ 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index 9829db883c2..c13a5c0f94e 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: ステップ 81 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index 1a4b8e385cf..9b5f3175eda 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: ステップ 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index 953da9d0aae..383cfb8c74c 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 では猫の頭を中央に表示させましょう。 -`.cat-head` の要素の position プロパティを `absolute` に設定してください。 そして `right`、`left`、`top`、`bottom` それぞれのプロパティに `0` の値を設定し、さらに全方向の `margin` プロパティを `auto` に設定してください。 これは、要素を縦横中央に配置する手法の一例です。 +`.cat-head` の要素の `position` プロパティを `absolute` に設定してください。 そして `right`、`left`、`top`、`bottom` それぞれのプロパティに `0` の値を設定し、さらに全方向の `margin` プロパティを `auto` に設定してください。 これは、要素を縦横中央に配置する手法の一例です。 # --hints-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 92c2c3e7b89..27b182ae7e2 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: ステップ 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index 815ae1409d1..3d4e8a96520 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: ステップ 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index 9847c154015..2ad554e9701 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: ステップ 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 6c8e7fc3f69..0e582fed8ea 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index 1b7ca642e11..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: Step 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Finally, return the value of `median`. - -Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. However, it is important to remember that shorter code is not always better code. In this case, reducing the lines of code would make the code harder to read and understand, impacting future maintainability. - -# --hints-- - -Your `getMedian` function should return the value of `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index f28c2407e22..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: ステップ 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index 4d9e1eeb0b3..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: ステップ 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 293cbfa325c..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: ステップ 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index 96e682979d4..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: ステップ 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index 4c246019575..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: ステップ 28 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index efe748c9dde..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: ステップ 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index 816b9d96eff..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: ステップ 30 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index 3c727af6ec4..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: ステップ 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index 6c09c2a1709..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: ステップ 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -You should return `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index 5fd76bb6b05..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: ステップ 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -You should have a constant called `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index e92f14e5cd9..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: ステップ 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index 18725d9bae9..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: ステップ 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..1dd73ecc04b --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index b05e6b5ed0d..3360c93b50d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index 31b5aab1949..0eac43fb139 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index 872f15c114d..17f15765aa0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index da746753d28..2607be95cff 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index fcacc62099d..f191e66cf0f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md index 00ed710db32..c9a2b3d8323 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index 5e2699cd92f..697a961ebe4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index d08f231f391..7e6e32a5fd4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index c9222ca37a2..fb235c822c5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index fe761e7f5dd..9a45437b3b7 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index 4d2f4e4141a..147905bc8f0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index 9edacf0701a..7e575e0125c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index 4d809bc2069..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: ステップ 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -Variables can be assigned a value. When you do this while you declare it, this is called initialization. For example: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Initialize your `xp` variable to have a value of `0`, a number. - -# --hints-- - -`xp` should have a value of `0`. - -```js -assert.equal(xp, 0); -``` - -You should initialize the `xp` variable to `0`. Don't forget the semi-colon at the end of the line. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index 7ccd56b9984..8c73975833f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Create another variable called `currentWeapon` and set it to `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -You should use `let` to declare a variable called `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` You should use camelCase to name your variable. ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -Your `currentWeapon` variable should be set to `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` You should initialize your variable to `0`. ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index 6b71718528e..c09d8bbd79c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index 2a4b553972f..34d9459ba8c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index 93a84951473..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: ステップ 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -The variables you have assigned have all had values that are numbers. JavaScript has multiple different data types. The next one you will use is the string. Strings are used to store things like words or text. Strings are surrounded with double quotes, single quotes, or backticks. Here is an example of declaring a variable with a string: - -```js -let developer = "Naomi"; -``` - -Assign the `inventory` variable to have the value of `stick`. - -# --hints-- - -You should set `inventory` to the string `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -You should initialize your `inventory` variable with the string `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index 3543b21abbe..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: ステップ 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -The player's inventory in your game will be able to hold multiple items. You will need to use a data type that can do this. An array can be used to hold multiple values. For example: - -```js -let order = ["first", "second", "third"]; -``` - -This is an array which holds three values. Notice how the values are separated by commas. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -Your `inventory` variable should be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should have three values. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -Your `inventory` variable should have the values in the correct order. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index 45259c40839..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: ステップ 14 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -Your `inventory` variable should still be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should only have one value. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index d75e6619d33..e13e235a23c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index 63b8f3a8475..9caf7e829c1 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index 491cbbb3fe3..01d81e0c3b4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index 88bcd739238..4e05e0cab79 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index b1c4d1d1b36..92af71dab77 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 32cd3d6a758..1a0976099be 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index 0d1dfed3a01..3797e2709d6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 902edafc6b3..8236d006fdf 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 2638ce9ae52..ecd7b41e551 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 46025e90ee2..4899b136971 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index a1779a579fa..af1ce60c93d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 7c76591109f..1e0c4282c4f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 2be712694cf..a5fcd2f1dec 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index cc90d211dd4..6040d1028d3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index b0dfcbb9d7b..2998105596f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index d1a2df0ea4b..1210d1b0e3b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 5b43ac85352..752b1671817 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index f31a581cc2d..1086d92ce39 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index 353d61ea5b0..9fa40be79c3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 1841ae43c76..25e82fda63c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 1a4ddfa7458..14eefc67a6e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index 637830bb00f..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: ステップ 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -Object properties are written as `key: value` pairs, where `key` is the name of the property (or the key), and `value` is the value that property holds. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"town square"`. - -# --hints-- - -Your first value of `locations` should be an object. - -```js -assert.isObject(locations[0]); -``` - -Your first value of `locations` should have a `name` property. - -```js -assert.isDefined(locations[0].name); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index 12891538908..6474b8db7c7 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index c318e051bc8..4ed6343fd96 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 4337bbb7817..442032d8950 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index 84e25aa3479..75a9b22ce50 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index b3d8e3a6ced..cb2e7bdaeaa 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 76419553abe..05f08bb6a19 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 6a2fd6dd18e..60ab0a2b874 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index ee22bd5db18..44fd2f7eb9c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index 42fa1b7156b..1dc5232b378 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 6df6d825b45..b54ee029164 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index 64dbdadcc64..5dbb6907d42 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index 69288ecb4e1..88610822650 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index 0bc2ea4f339..9eecaaee678 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index 7e8b7d6f71e..1848eab1431 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index cb1dab4a818..dda03f4aa4a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 87f4686de53..1b71205f170 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index b0c4f008224..eb77b88b3b0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 7f9be4c607c..10e1f6ce3fa 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 43844bfd6fa..2ea876ddf24 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index 407ef30337e..addf8147369 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index b32a4624174..83b34def3df 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index 03a101706ac..646a274c94a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index 6b99da99be4..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: ステップ 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -The `condition` string is just a placeholder. Change the `if` statement condition to check if `gold` is greater than or equal to `10`. - -Here is an `if` statement that checks if `num` is greater than or equal to `5`: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -Your `if` statement should check if `gold` is greater than or equal to `10`. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -Your `buyHealth` function should update `health` and `gold` if `gold` is greater than or equal to `10`. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -Your `buyHealth` function should not update `health` and `gold` if `gold` is less than `10`. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index 23684174766..c2df7ba8924 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index a5108647216..e35ee493c6b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index df552626f1b..adad93a5c6b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index 9a18056f74e..470f9065bec 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index 57cf505e52b..bb8a07042e3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index a210376fd75..b3592e5aa14 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index 641048de2e1..0f65c77df04 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -The value of the `currentWeapon` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -In the `buyWeapon` function, use compound assignment to add `1` to `currentWeapon` - the user is buying the next weapon in the `weapons` array. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -You should use compound assignment to add one to `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -Your `buyWeapon` function should increase `currentWeapon` by `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Your code should be in your `if` statement. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index a4c118f6f3d..1bd4b3f4533 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Change your `currentWeapon` assignment to use the increment operator. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -You should use the increment operator to increase `currentWeapon` by `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -You should not use compound assignment to increase `currentWeapon` by `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 0288af76ebf..da2f57a2940 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 0509fd0209f..bd061db00af 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 0ce8646d7ba..d72680595d4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeapon` within the brackets. +Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeaponIndex` within the brackets. When you use a variable in bracket notation, you are accessing the property or index by the *value* of that variable. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index eb78febdb46..6f6157eec95 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` is an object. Use dot notation to get the `name` property of that object. +`weapons[currentWeaponIndex]` is an object. Use dot notation to get the `name` property of that object. # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 065a312d032..b4717bed9e8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 33fcfc81e1d..1d2fa00beec 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ Your `buyWeapon` function should add the value of `newWeapon` to the `inventory` ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index c2c10d03e5b..5443169577e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index 049fa2470e9..baf137a8530 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index 0843051f507..47211f51cf4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index 35bd5b0666b..cd43584c827 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeapon` is less than `3` - the index of the last weapon. +Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -You should have a new `if` statement that checks if `currentWeapon` is less than `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` Your existing `if` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); Your existing `else` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index 71fd3d9c5b4..663cb53c8c4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Arrays have a `length` property that returns the number of items in the array. You may want to add new values to the `weapons` array in the future. -Change your `if` condition to check if `currentWeapon` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ You should use the `length` property on the `weapons` array. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -Your `if` statement should check if `currentWeapon` is less than `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index 00bcc81def5..4632b674d6f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -The `currentWeapon` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. Change the `if` condition to check `weapons.length - 1`, instead of `weapons.length`. @@ -23,10 +23,10 @@ You should update the condition to subtract `1` from `weapons.length`. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -Your condition should check if `currentWeapon` is less than `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 88e988b4342..cc1c4b8273d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 7beafd0a495..041472b56b8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 194d6d2130b..cc73efed14f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index a23450f5ed4..763f646b62b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 0d176b81c7f..975c6446f0f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index 0032e30ee54..93b5c9babb8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Notice that you already have a `currentWeapon` variable elsewhere in your code. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 4e7f9117a26..59e803ef18d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index 0ce7ffb6314..d53accb8e69 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` Your `text.innerText` should update to the proper string. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index 44e4ab1926b..65721659631 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index f5bbad9e0d1..682a5fe76bd 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index b92571d3d30..abd86e35b27 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 7a5458fd606..1c6cd769027 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index a1daed21eef..3b555e0f9f9 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index 331e94c38eb..39a1ab9c522 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 2c8be2f2d00..9d1aebd3d08 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index c26c417f4d0..2312c7efe25 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 507f9e51e21..96029139026 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index eb32394270b..56b799d223d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index 58bc33ab805..4161214cad4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 437ca16fc9b..2b27d636b1f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index d370d9899e7..c9db1c10266 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index c6f89860b85..bb8a96a906d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeapon].name`. +You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index c66f059b602..040babab4ec 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index d59c6a933e7..6225b405f50 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Using these, you can generate a random number within a range. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ You should use the same `monsterHealth` line you already wrote. assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -You should add to the `weapons[currentWeapon].power` value. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` You should use `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? You should add the result of `Math.floor(Math.random() * xp) + 1` to the result of `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index d68134d2350..274040289a1 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index ffd5e28f3ee..079c222ff3d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index 5b971e7aaaf..7930bd5579f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 3be7b4a8355..d7ef1c1dac8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index d5af7299e44..ac255663e19 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index 81d4dd2883d..0aede6aa27a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index 110f82cbd5b..22817a6e62f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 35a05b443aa..be06a139e03 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 024b4959d65..5766abd424a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index 3bca3e5c383..f6b904e02c3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index c1f3457b7c5..405a97fa6e2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 3ad57b17036..5d78cc4d0b5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 641e365bf76..9286fc33eb0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 5ff1b213382..22c13f88c2b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeapon` to `0`, and set `inventory` to an array with the string `stick`. +At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Also update the `innerText` properties of `goldText`, `healthText`, and `xpText` to their current values. @@ -39,10 +39,10 @@ Your `restart` function should set `gold` to `50`. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -Your `restart` function should set `currentWeapon` to `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 3f0337d819c..a132b990d3c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index 4e2d63fa3e4..bf52667c43c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index 5bb111d0b29..e318c25ce60 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 737e5a1a247..41faa44d5ef 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 1beebfe0ab7..b9f78edb5c3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index e714aedc940..7b96177a6a6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index b4f1daf80a0..f945040ccab 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index 9ac019e464d..7194de8da02 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index 648a7562e7c..ab5905353b1 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 1b7a89f353f..632abe728dd 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index 4c7363d5341..7da1800af5e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ Move your `monsterHealth` assignment into your `if` block. # --hints-- -You should move your `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` into your `if` block. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index a1775d7543b..e6ce6f4616a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct You should add an `else` block after your `if (isMonsterHit())` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index 1b9384de685..89b70f7c1b3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 9219b8da936..3b985e1dbd3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 4bca7930754..fcb4a8b153e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 308f53fd795..9e1a123a719 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 0aecde7e233..28d47dffdff 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Decrement the value of `currentWeapon` in your `if` statement, after you update the text. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ You should use the decrement operator. assert.match(attack.toString(), /--/); ``` -You should decrement `currentWeapon` in your `if` statement. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index fb88f652092..aa926a8b8d8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index 84e6671d449..0ab02c6d783 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index f2c2ae3c598..705c25660dd 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index 4123ece8378..c1d224bb2dc 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index 9cf97ef1f86..8e5ad353975 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index ae21c052d6e..7f603982c95 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index 2c5359f0283..9629947e6cb 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index a674632b49b..a8fa573a795 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index 1ef1456647a..af13af000e3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 1eb6aa4c1f1..ee1f17b327b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index 9da6c0e84f1..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -`for` loops are declared with three expressions separated by semicolons. `for (a; b; c)`, where `a` is the initialization expression, `b` is the condition, and `c` is the final expression. - -The initialization expression is executed only once, before the loop starts, and is often used to define and set up the loop variable. Think of it like declaring a counter to use in your loop. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -You should change your initialization in the `for` loop to be `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index 346adeb6fa0..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -The second statement in a `for` loop, the condition statement, is evaluated at the beginning of every loop iteration. The loop will continue as long as the condition evaluates to be true. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -You should update your condition statement to be `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index 1dd28e8ad74..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -The last statement in a `for` loop, the final expression, is executed at the end of each loop iteration. - -Since we changed the initialization statement to use `i` instead of `x`, change `x++` to `i++`. This will increment the initializer `i` by 1 after each loop. - -# --hints-- - -You should change your final expression to `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index 71875c1a0ea..6045c2ab02f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 5d2de454974..5c01ee608a2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index 659e9a1e4b1..51a72303ff2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index b0868a55bf0..3b46e0900dc 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 650fe59ddd1..d5cf53b8ad6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index ebf70ca3d06..4f1db2ae242 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index db3e2b0cc04..e584e963759 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index 4210e30d01c..727d1e77172 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index f0978d9f11e..e2a20f27ac0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index c38becdee8c..52cf362e9fa 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index 27be8c27ee8..3cb2f0de300 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index abe520975be..4315e2137f2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index b417c8c2100..2d0a5cd3f28 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index 9f5a42641c5..699550cfb41 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index 034ba00c160..fc8341ea9a7 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -You should declare a `cleanInputString` variable. -```js -assert.isDefined(cleanInputString); -``` -Your `cleanInputString` variable should be a function. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index 33177195353..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: Step 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -You need to split your `str` into individual characters. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -Your `cleanInputString` function should declare a `strArray` variable. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Your `strArray` variable should be assigned the value of `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index 702895f1115..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: Step 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Declare a `cleanStrArray` variable and assign it an empty array. You will use this to store your valid number characters. - -# --hints-- - -Your `cleanInputString` should declare a variable called `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Your `cleanStrArray` variable should be assigned an empty array. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index d0415579d0d..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: Step 21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Use a `for` loop to iterate through each character in your `strArray` array. - -# --hints-- - -Your `cleanInputString` function should have a `for` loop. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Your `for` loop should initialize a variable called `i` to `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Your `for` loop should have a condition that checks if `i` is less than the length of `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Your `for` loop should increment `i` by `1` each time it runs. Use the increment operator for this. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index 5df5c66a21d..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: Step 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). If it is not, `push` it to the `cleanStrArray`. - -# --hints-- - -Your `for` loop should have an `if` statement. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Your `for` loop should use `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Your `for` loop should `push` `strArray[i]` to `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 4ecae222222..0f955c403d9 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Start by creating a function called `isInvalidInput` – it should take a single # --hints-- -You should declare an `isInvalidInput` variable. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` should be a function. ```js diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index 5fe11ad76a0..9a7c21d3716 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Your next step is to allow users to add entries to the calorie counter. Declare # --hints-- -You should declare an `addEntry` variable. - -```js -assert.isDefined(addEntry); -``` - -Your `addEntry` variable should be a function. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index d90798583b0..ac72cff5f7a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; Variable naming follows specific rules: names can include letters, numbers, dollar signs, and underscores, but cannot contain spaces and must not begin with a number. -Declare a `character` variable in your code. +Use the `let` keyword to declare a variable called `character`. _Note_: It is common practice to end statements in JavaScript with a semicolon. `;` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index 6109c86878c..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: Step 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index 6e03cf91edf..00000000000 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: Step 15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -To check if the `Object.freeze()` method is working, you can try to assign a new value to one of the existing properties. - -Below the `Object.freeze(myFavoriteFootballTeam)`, assign the `USA` string to `myFavoriteFootballTeam.team`. Below that, add a `console.log` for `myFavoriteFootballTeam.team`. - -When you open up the console, you will see an `Uncaught TypeError` message. This error appears because the `Object.freeze()` method does not allow you to overwrite that value. - -# --hints-- - -You should assign the `USA` string to `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -You should add a `console.log` for `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index c15b8f3cc2d..fc24a834af3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index 8b8fe3e0626..d51bf98eb0c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index bd1906b6a41..48e7808bf3e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index 8df088020f3..7a1b42ed3da 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index ad9b4d75139..e6b8ef39938 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index 4d7202f2f9e..8362f8700c7 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index 13f5c15b582..f2425241aea 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index c51497acf47..a01ff0b558a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index 991cbe7f3e9..c98f9ef83c0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index 214c835416d..86d8eeee69a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index 8d2607aff65..7fb95755235 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index a8d1a9ee742..1c2dc72d013 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index dc20f56200b..d03bd8a5156 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index b1b9f9820fc..3bd0c9e2673 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index 105d69ad9f4..fc2d561dfc9 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index 8d5c030ea9e..fefd94693c1 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index 9c88f5bc8fb..3241dc46cc8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index 547204b2a47..6b3de2ded57 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index 0157518d1f4..0599fead45f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index afb690746c9..8fc4e184f7b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index 96aa4d9edda..9c8fc7e0a01 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index e327a6d184c..f01164f1f71 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index 60991bd8eab..7554c47a093 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index d35df261005..918d3f369a3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index d0830fa8340..77553da11ab 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index b941bc0f62e..0dcab018c47 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index b570da5e097..fa015dcec3d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 69b1c2d2290..9e899ae6f06 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index d0defaadf7f..ca23f5b762d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index 817174576dd..a5d66875031 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index 2c81481a6fc..b5d501608cf 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index 710c0049080..02b3ed8959b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index e7b2f675158..907799bc072 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index 8ac6e25a63a..ac6f0a08e6c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index 6eaa9cdf87d..56a32e8c0be 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index 83c780116f2..da79c5aec0b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index d12996d2249..350b7c29271 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index d68c397c28d..6d14d565416 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index 2e996bb8c89..76198637ed9 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index a68df70d84e..d946bd5aefe 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index 7176223a75f..1f8c18f14fd 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index 11fc57fdce8..0a21f4b7284 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index 4664165a66a..5d7e5fb07a7 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index 93f0df303f4..69674fd78b2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 8cb84e99986..492959bc841 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index 794deef4e2c..3c25c706bce 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index 634e550e148..bb5199a15a5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index c5bc0de89a9..9c8c20efa2a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index 0d8ef29f292..0a924049f8b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index 2de10b23351..c32aaa71937 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index 7c9fa3f65d2..f4100e8ab9a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 3cd4d4390bf..eff701e66f4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index 1abcc1802b1..81f9463aca6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 5bcd930a9d7..75e161ac94d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index aaf4a955d14..5b90e5b3e3c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index ebb9fd55179..df4bc0512b9 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index 62f7a5eb6d1..d0e09702194 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index 40c0635d5f0..fcd1a411cc7 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index c48c7fec3ba..4ed40e5b4c8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index b34ea13f3ba..26f18cd3227 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index e503bbcc127..1e7abf589ec 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index 79f69319b71..5357f1dc59d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index 00de9f3019e..c9a0194a1e8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index da90c12dd0a..d482369a0a0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index a4a55ffd904..d88bd0721c1 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index cafd4aecc63..990dc2f1813 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index 253609baeb9..897b1c6120f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index 68bb8b6e21d..b9b533a1191 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index 4e19a30b7a2..b6203a4f10b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index 0020661951d..d81c90cf649 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index 451ac7f5e66..89c8ef4c642 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index b9de51b0d52..de9bdd99fc4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 5109674ebd6..f61b26d0f9e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index f8d748ed8f5..4b7a1dcb1df 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index d776c216511..b3bb131c78c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index 209614febb5..1f8b155c066 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index 26fe86ceb9d..3b2987b6350 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index 12d0547c356..3153f274ce6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index eb3e0f1b98b..44c506dda3d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index 1b193f68ddc..906209806cf 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 0ef3344acd3..ec5c8c22c6d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index cab3babf69c..e1488eaae50 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index 33f075b24ec..204ed09f68e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index a8028bd8c6e..df73aa8b727 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index 6163b71e1ca..5ec075a0fde 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index df10580f8e0..da5e1a637e8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index 7ac96234522..377e520b692 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index 8ee66309b97..175af2433b5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index d60725a3ba6..b9eb665351c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 6b63d3f0f97..d4abe8ddb36 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index 1df8f0b0b96..2e140b84bfa 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index 94c647fdc68..1ebd10019ce 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index c541a3dad9f..891b8e2db67 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index 94af493ee3b..bfbbf658b7d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index 4290633ce17..41a27075182 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index bfed7fd12dd..52245e6ca93 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index 0f1aa7f31c8..28e76acbf38 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index 7f8a267efca..ec6f7aa7bf9 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index 11a148029df..4354325a471 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index 29feb0cf613..bbc45daaa21 100644 --- a/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Working with Text Question H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index 05765087c87..75fc123e8a2 100644 --- a/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Working with Text Question I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index e496b6b12a8..35c0cd937ec 100644 --- a/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/japanese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Working with Text Question J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/japanese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/japanese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index fb1f46947d4..3dbb819f9d7 100644 --- a/curriculum/challenges/japanese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/japanese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 3fcdcc4105c..74aaa2353f6 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialogue 2: Tom Meets the Coworker Next To Him" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index 857d52d4c51..fa5b427fdc5 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Task 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index 4378e29c5a2..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 1b087682364..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --sentence-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## --blanks-- - -`didn't` - -### --feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index b151c618ba5..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index e05d1b4d18c..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 15a7e2d974a..bc57860a94a 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 8ecc2d884fc..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..7f272358313 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index 7f0e05f85c4..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 329730abb2b..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index 08a8c6eb76c..52838f37f84 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 4713f6f90e7..c4b97533063 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index 82ca13e64a4..6672cad0a72 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 3dd315d87d0..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index 905883840d1..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index b8c73e4627d..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..c2978af6438 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index 5c853b53bf8..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index e1bc9517b30..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..e5571f08f36 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..ea4e9a66215 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index 0c3e95d7e70..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 0477289c3a0..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index de300f3817e..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index be0936fbf23..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index df6f482155c..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..6947fe048c2 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..e05448d9d48 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Task 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..aaa7a3890de 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Task 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..ea5416f070f 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Task 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..91066451909 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Task 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..109deef84e4 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Task 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..5bd0b159b4a 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Task 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..527d24103b0 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Task 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..b536269cb5a 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Task 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..9ea5dfd2ec2 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Task 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..0031c5026bb 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Task 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..dc9412ebb8f 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Task 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..53772f4f629 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Task 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..564de6f07b1 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Task 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1f031ee3f1e 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Task 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..f2d572900d8 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Task 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..4b818dc4a70 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Task 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..707eb0d122d 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Task 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..e117e9317d8 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Task 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..5b4096f746c 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Task 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..7221646546e 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Task 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..03428f51432 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Task 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..287f03ddd1e 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Task 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..1538fbae725 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Task 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..331abe3703f 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Task 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..93862c576dc 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Task 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..5afcfa7c916 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Task 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..7937868764f 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Task 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..bf7fa023589 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Task 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..304a2c583d8 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Task 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..98e230933ca 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Task 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..054af388b35 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Task 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..3a5f7c3594b 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Task 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ff7dad74588 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..d41cb232f9c 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Task 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..a29433a1b9a 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Task 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..d29b5313cd6 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Task 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..aa9a85fb288 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Task 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..7eed555b4e1 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Task 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..fd66f011103 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Task 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..198f4c0b6e9 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Task 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..db488ae0a03 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Task 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..fcebb2960ea 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Task 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..b3152c55726 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Task 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..921551d84e0 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Task 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..778df3691d7 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Task 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..cf208824a34 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Task 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..7d49d97efb2 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Task 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..924dc459772 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..32c51e43652 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Task 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..bb730a97243 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Task 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..b96607f08e3 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Task 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..1649db7e147 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Task 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..4d1c3371618 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Task 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..7161861383e 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Task 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..000ef53d2ef 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Task 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..f9abd0109a4 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Task 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..b13756997fc 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Task 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..2de180a58c7 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Task 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..0866794a4e5 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Task 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..610f7a26d7a 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Task 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..185183a0410 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Task 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index a97c197e22e..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index 5674935eed0..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index a966696d7b6..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 39ecfc10ec3..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index e3c77f64da4..00000000000 --- a/curriculum/challenges/japanese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/korean/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index 423a8252e50..a6b4683d827 100644 --- a/curriculum/challenges/korean/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/korean/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: s 태그로 취소선이 적용된 텍스트 만들기 challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/korean/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/korean/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index f30db054e4e..decd6a1a41e 100644 --- a/curriculum/challenges/korean/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/korean/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: 브라우저 Fallbacks로 호환성 향상하기 challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/korean/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/korean/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index ed896f479f2..719abbd8846 100644 --- a/curriculum/challenges/korean/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/korean/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: Assigning the Value of One Variable to Another challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index 1ab5ce99b47..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: Step 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index e752469d616..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: Step 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index 22c0328871a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: Step 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index a2c396cbf8c..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: Step 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index e2a3fcdd2df..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: Step 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index 2d4b4108590..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: Step 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index 438bf8be621..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: Step 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index 835e65c1a70..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: Step 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index bca25bc2859..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: Step 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index 573c9f1d8d7..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: Step 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index ac974c93572..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: Step 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index f5829fd8ea1..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: Step 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index 28b1c0bbfc1..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: Step 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index e7c0ed05dac..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: Step 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index 6477d428c0a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: Step 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index 950b2d70fe9..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: Step 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index 00c8a75d53c..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: Step 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index 9b6b8661a06..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: Step 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index aea97f55d39..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: Step 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index 407e36ed978..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: Step 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index 058613246b5..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: Step 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index 9a3ff1a7cf7..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: Step 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index ced1d4b3e99..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: Step 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index 16d3fd31223..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: Step 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index c6beffc62dd..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 960dfceced4..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index afb8c4a449a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: Step 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index e01f85171de..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: Step 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index 2a0e5c16f85..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: Step 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index 2281e4ebd04..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: Step 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index 07943e913e1..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: Step 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index 416a3ab59c9..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: Step 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index 5a320577312..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: Step 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index a20280d43cd..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: Step 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index 8b70a089c7b..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: Step 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index c054dc666aa..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: Step 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index 4a7bc419677..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: Step 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index 2a785397b1f..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: Step 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 534a8311a44..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: Step 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index 55a3658da64..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: Step 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index 5fe90adbdc7..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: Step 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index 987439b3597..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: Step 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index 6d564ac5635..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: Step 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index 8f56685f2ed..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: Step 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index 8d9c209664b..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: Step 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index ddc5eec1c84..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: Step 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index 296ab9b40db..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: Step 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index eaf484fab25..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: Step 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index ace687c55ee..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: Step 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index 9464102534b..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: Step 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index e4169f71483..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: Step 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 609f58fae3b..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: Step 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index 0cf33878b57..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: Step 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index e83a6028764..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: Step 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index 600de8ba683..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: Step 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index 0f21e34ca39..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: Step 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index 1f7a21c13c8..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: Step 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index 572d2ae8f39..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: Step 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index 2925f57e7f4..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: Step 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 9e0632ff215..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: Step 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index d0d28f4596d..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: Step 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index bfb9db89a21..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: Step 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index 25d9d4bf2dd..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: Step 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index 7f13c3013f4..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: Step 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index 5baea324998..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: Step 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index 122322a6da0..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: Step 66 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index b82ed6ddc68..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: Step 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index 26274fd86e8..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: Step 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index 946cd2d9c0c..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: Step 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index 3d3aab8d861..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: Step 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index c33d46799f2..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: Step 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index f601bb35c6d..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: Step 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index 966091151e5..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: Step 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index 937d3bdd45a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: Step 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index a89e4b72866..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: Step 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index 6469a783c80..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: Step 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index ea4c5869ec2..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: Step 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index f366526d17a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: Step 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index f8f9ea51048..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: Step 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index 90725056be2..51f05e69ed6 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -13,7 +13,7 @@ Start by defining a function named `add_expense` that takes three parameters: `e # --hints-- -You should declare a function named `add_expense`. +You should use the `def` keyword to declare a function named `add_expense`. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index 46464d5b438..902a3b4a207 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -7,13 +7,13 @@ dashedName: step-2 # --description-- -A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets `[]`, with each item separated from the following one by a comma. +A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets (`[]`), with each item separated from the following one by a comma. ```py numbers = [1, 2, 3, 4] ``` -Create an empty list named `expenses`. You will use it to store each of your expenses. +Use a pair of square brackets to create an empty list named `expenses`. You will use it to store each of your expenses. # --hints-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index 0c83f09ee12..7f5af99e0a8 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -7,21 +7,29 @@ dashedName: step-3 # --description-- -The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you can use the `.append()` list method: +The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you'll use the `.append()` list method: ```py my_list = [2, 4, 7] my_list.append(3) ``` -In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. +In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. + +Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. # --hints-- You should have `expenses.append()` in your function. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\)/m) +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append()")`)) }) +``` + +You should not have `pass` in your function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("add_expense").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index 5c850342519..e89afc026b6 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -7,7 +7,7 @@ dashedName: step-4 # --description-- -A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces `{}` and they contain key-value pairs separated by commas. Each key is followed by a colon `:` and the value: +A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces (`{}`) and they contain key-value pairs separated by commas. Each key is followed by a colon (`:`) and the value: ```py {'amount': 50.0, 'category': 'Food'} @@ -19,10 +19,20 @@ Create a dictionary with a key `'amount'` and value of the `amount` parameter an # --hints-- -You should have `expenses.append({'amount': amount})` in your function. +You should pass a dictionary as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) +`)) }) +``` + +You should pass `{'amount': amount}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index 510a44b67ab..721a796db68 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -11,10 +11,20 @@ Add another key-value pair to the dictionary you are appending to the `expense` # --hints-- -You should have `expenses.append({'amount': amount, 'category': category})` in your code. +You should add a second key-value pair to the dictionary you are passing as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*,\s*("|')category\2\s*:\s*category\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) and len(node[0].tree.keys) == 2 +`)) }) +``` + +You should pass `{'amount': amount, 'category': category}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount, 'category': category})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index 7695824ec3b..73641d49305 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -Start by defining a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. +Next, define a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. Fill the body of your new function with a `pass` statement. diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index 9b084b00236..bbc053b88ad 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -11,10 +11,22 @@ Inside the `print_expenses` function, create a `for` loop that iterates over eac # --hints-- -You should have `for expense in expenses:` in your `print_expenses` function. Remember to use `pass` within the loop body. +You should create a `for` loop that iterates over `expenses` in your `print_expenses` function. Remember to use `pass` within the loop body. ```js -({ test: () => assert.match(code, /for\s+expense\s+in\s+expenses\s*:/ ) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_iter().is_equivalent("expenses")`)) }) +``` + +You should use `expense` as the loop variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_vars().is_equivalent("expense")`)) }) +``` + +You should have `pass` only inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index 84a69b3ede3..a174cc5080d 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -9,14 +9,20 @@ dashedName: step-8 Next, you are going to display the details for each expense. -Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. Leave the placeholders empty for now. +Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. # --hints-- -You should have `print(f'Amount: {expense}, Category: {expense}')` in your `for` loop. +You should print `f'Amount: {expense}, Category: {expense}'` in your `for` loop. ```js -({ test: () => assert.match(code, /^\s+print\s*\(\s*f("|')Amount: \{\s*expense\s*\}, Category: \{\s*expense\s*\}\1\s*\)/m) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].has_call("print(f'Amount: {expense}, Category: {expense}')")`)) }) +``` + +You should not have `pass` inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_bodies()[0].has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index 7f9f383b8cb..5b3d7e8c901 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -7,7 +7,12 @@ dashedName: step-9 # --description-- -You can access values in a dictionary through its keys. You need to use the bracket notation and include the key between the square brackets: +In Python, an important thing to know is that the same type of quote used to define a string cannot be used inside it. For example, the string `'I'm a string!'` is not valid. To use the single quote inside that string you should either: + +- Escape the quote by prepending a backlash to it: `'I\'m a string!'` +- Or use double quotes to define the string: `"I'm a string!"` (preferred). + +You can access values in a dictionary through its keys. You need to use bracket notation and include the key between the square brackets: ```py my_dict = {'amount': 50.0, 'category': 'Food'} diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index a73f1f8e78a..bcc9e4d599a 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -7,7 +7,9 @@ dashedName: step-10 # --description-- -You will need a function to calculate the total amount of expenses. Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. +You will need a function to calculate the total amount of expenses. + +Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. # --hints-- @@ -21,7 +23,7 @@ You should define a function named `total_expenses`. }) ``` -Your`total_expenses` function should take a single `expenses` parameter. +Your `total_expenses` function should take a single `expenses` parameter. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index 43490a8b458..222a61984b9 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -13,14 +13,22 @@ Lambda functions are brief, anonymous functions in Python, ideal for simple, one lambda x: expr ``` -In the example above, `x` is a parameter to be used in the expression `expr`. Create a `test` variable and assign it a lambda function that takes an `x` parameter and returns `x * 2`. +In the example above, `x` represents a parameter to be used in the expression `expr`, and it acts just like any parameter in a traditional function. `expr` is the expression that gets evaluated and returned when the lambda function is called. + +Create a variable named `test` and assign it a lambda function that takes an `x` parameter and returns `x * 2`. # --hints-- -You should have `test = lambda x: x * 2` in your code. +You should declare a variable named `test`. ```js -({ test: () => assert.match(code,/^test\s*=\s*lambda\s+x\s*:\s*x\s*\*\s*2/m)}) +({ test: () => assert(runPython(`_Node(_code).has_variable("test")`))}) +``` + +You should assign `lambda x: x * 2` to your `test` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_variable("test").is_equivalent("test = lambda x: x * 2")`))}) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index f651f054e14..f7a3f166851 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -13,9 +13,11 @@ Lambda functions can be valuably combined with the `map()` function, which execu map(lambda x: x * 2, [1, 2, 3]) ``` +The function to execute is passed as the first argument, and the iterable is passed as the second argument. + The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index 11b248f024d..0d904e4d542 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -1,6 +1,6 @@ --- id: 658238f7604f154ea9a23e1e -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- @@ -9,7 +9,7 @@ dashedName: step-15 The `sum()` function returns the sum of the items in the iterable which is passed as its argument. You are going to use `sum()` together with `map()` and `lambda` functions to get the total amount of expenses. -For now, make a little test and modify your current `print()` call by passing `sum(map(test, [2, 3, 5, 8]))` as the argument. +For now, make a little test and modify your current `print()` call replacing the `list()` call with a call to the `sum()` function passing it the current `map()` call as the argument. # --hints-- @@ -36,7 +36,7 @@ def total_expenses(expenses): --fcc-editable-region-- test = lambda x: x * 2 -print(map(test, [2, 3, 5, 8])) +print(list(map(test, [2,3,5,8]))) --fcc-editable-region-- expenses = [] diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index b8b9ce4c902..0c4b5191a9a 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -1,28 +1,22 @@ --- id: 65823b0167fd894f4a7ea60a -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- # --description-- -Next, you are going to implement the same logic to the `total_expenses` function. +Next, you are going to implement the same logic within the `total_expenses` function. For now, delete both the `test` function and the `print()` call. # --hints-- -You should delete your `test` variable. +You should delete your `test` variable and the related `print()` call. ```js -({ test: () => assert.notMatch(code, /test\s*=/) }) -``` - -You should delete your `print(sum(map(test, [2, 3, 5, 8])))` call. - -```js -({ test: () => assert.notMatch(code, /print\s*\(\s*sum/) }) +({ test: () => assert.isFalse(runPython(`_Node(_code).has_variable("test")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index 1923fc32955..af93b0e12fc 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -1,27 +1,28 @@ --- id: 65823bbbdb4eaa4f9d20a0fb -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- # --description-- -Within your `total_expenses` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the value of the `'amount'` key in the `expense` dictionary. +In the `total_expenses` function, you'll now integrate a lambda function. Replace `pass` with a lambda function that has `expense` as its parameter. + +`expense` is expected to be a dictionary, and your lambda function should return the value of the `'amount'` key in the `expense` dictionary. # --hints-- -You should have `lambda expense: expense['amount']` in your `total_expenses` function. +You should create a `lambda` function that uses the parameter `expense` and returns `expense['amount']` in your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_stmt("lambda expense: expense['amount']")`)) }) +``` + +You should not have `pass` in your `total_expenses` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("total_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index d17f8f6571d..c06ab93c264 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -1,6 +1,6 @@ --- id: 65823cfc74aa564ffc460489 -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- @@ -11,17 +11,22 @@ Now, call `map()` passing your `lambda` function as the first argument and the ` # --hints-- -You should have `map(lambda expense: expense['amount'], expenses)` in your code. +You should call the `map()` function inside the `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("total_expenses").find_calls("map")) == 1`)) }) +``` + +You should pass your `lambda` function as the first argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[0].is_equivalent("lambda expense: expense['amount']")`)) }) +``` + +You should pass the `expenses` list as the second argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index 8a12ecb23ae..29c09ae0262 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -1,6 +1,6 @@ --- id: 65823dde36392f505a39f7c7 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- @@ -11,17 +11,10 @@ Finally, pass your `map()` call to the `sum()` function to obtain the total expe # --hints-- -You should return `sum(map(lambda expense: expense['amount'], expenses))` from your `total_expenses` function. +You should call the `sum()` function passing it your current `map()` call as the argument and return the result from your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+sum\s*\(\s*map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_return("sum(map(lambda expense: expense['amount'], expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index 3144540ac2b..63af9be4151 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -1,6 +1,6 @@ --- id: 65823e87c9741750a22085a7 -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index 82a5f51d884..289c306da64 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -1,27 +1,26 @@ --- id: 65823ff0d4b991510fade1a8 -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- # --description-- -Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category`. +Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -You should have `lambda expense: expense['category'] == category` inside the `filter_expenses_by_category` function. +You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) +``` + +You should not have `pass` inside the `filter_expenses_by_category` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index 071bed79f3b..fc8cab1fff0 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -1,6 +1,6 @@ --- id: 65824111a09164518320088d -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- @@ -13,23 +13,30 @@ The `filter()` function allows you to select items from an iterable, such as a l filter(my_function, my_list) ``` -`filter()` returns an iterator in which the elements of `my_list` are included, for which `my_function` returns `True`. An iterator is a special object that enables you to iterate over the elements of a collection, like a list. +`filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. + +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. # --hints-- -You should have `filter(lambda expense: expense['category'] == category, expenses)` in your `filter_expenses_by_category` function. +You should call `filter()` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")) == 1`)) }) +``` + +You should pass `lambda expense: expense['category'] == category` as the first argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[0].is_equivalent("lambda expense: expense['category'] == category")`)) }) +``` + +You should pass `expenses` as the second argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index 3d94f5ef49c..f0f6c12e365 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -1,6 +1,6 @@ --- id: 658244fdf4b0265334711664 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- @@ -14,14 +14,7 @@ Finally, return the result of the `filter()` call. You should return the result of the `filter()` call from your `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_return("filter(lambda expense: expense['category'] == category, expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index aca7bea5db4..cae351eee31 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -1,6 +1,6 @@ --- id: 65824561f3478e5371a33ae5 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- @@ -19,6 +19,8 @@ You should define a function named `main()` without parameters. ({ test: () => assert(runPython(` import inspect inspect.isfunction(main) + sig = str(inspect.signature(main)) + sig == '()' `)) }) ``` @@ -26,12 +28,7 @@ You should define a function named `main()` without parameters. You should move the `expenses` list inside the `main()` function body. ```js -({ test: () => assert(runPython(` - import inspect - sig = str(inspect.signature(main)) - sig == '()' - `)) -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_body().is_equivalent("expenses = []")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 420c8c10649..23b116aea50 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -1,6 +1,6 @@ --- id: 658246c28575d653d1f89b59 -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- @@ -18,30 +18,16 @@ Below the `expenses` list, create a `while` loop. Use `True` for the condition, # --hints-- -You should have `while True:` in your `main()` function. +You should create a `while` loop using `True` as the condition within your `main()` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+while\s+True\s*:/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_conditions()[0].is_equivalent("True")`)) }) ``` -You should have `print('\nExpense Tracker')` in your `while` loop. +You should print `'\nExpense Tracker'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')\\nExpense\s*Tracker\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print")[0].is_equivalent("print('\\\\nExpense Tracker')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index 6660692abda..150c7896f1d 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -1,6 +1,6 @@ --- id: 65824872894f59546e3084e2 -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- @@ -9,21 +9,18 @@ dashedName: step-26 The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. -After the `print()` call, add another one to print the string `'1. Add an expense'`. +After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. # --hints-- -You should have `print('1. Add an expense')` in your `while` loop. +You should print `'1. Add an expense'` within your `while` loop after the existing `print()` call. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')1\.\sAdd\san\sexpense\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index 22d112ba0aa..a557268c2db 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -1,6 +1,6 @@ --- id: 65824a1b16631c54fa524154 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- @@ -11,17 +11,14 @@ Next, add another `print()` call and pass the string `'2. List all expenses'`. # --hints-- -You should have `print('2. List all expenses')` in your `while` loop. +You should print `'2. List all expenses'` in your `while` loop after the existing `print()` calls. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')2\.\sList\sall\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index 7d3995272d7..662e4d59211 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -1,53 +1,44 @@ --- id: 65824c7b4e2da85597693dcf -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- # --description-- -Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. +Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. Keep adding the `print()` calls in order. # --hints-- You should have `print('3. Show total expenses')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')3\.\sShow\stotal\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('4. Filter expenses by category')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')4\.\sFilter\sexpenses\sby\scategory\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('5. Exit')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')5\.\sExit\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')", "print('5. Exit')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index 70e4eaa73b7..6c5f7e20351 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -1,6 +1,6 @@ --- id: 65824dfdb6815d563b2d3256 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- @@ -13,17 +13,18 @@ Inside your `while` loop, call the `input()` function passing the string `'Enter # --hints-- -You should have `choice = input('Enter your choice: ')` in your `while` loop. +You should declare a variable named `choice` within your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+choice\s*=\s*input\s*\(\s*("|')Enter\syour\schoice:\s\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].has_variable("choice") +`)) }) +``` + +You should assign the result of the `input()` function, with the string `'Enter your choice: '` as its argument, to your `choice` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_variable("choice").is_equivalent("choice = input('Enter your choice: ')") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 31d123637f7..8f20aa4cf58 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -1,6 +1,6 @@ --- id: 6582507654b3ed5712341382 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- @@ -15,30 +15,27 @@ Inside the `if` statement body, declare a variable `amount` and assign it an emp # --hints-- -You should have `if choice == '1':` in your `while` loop: +You should create an `if` statement that checks if `choice` is equal to `'1'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[0] +cond.is_equivalent("choice == '1'") or cond.is_equivalent("'1' == choice") +`)) }) ``` -You should have `amount = input()` in your `if` statement body: +You should declare a variable named `amount` in your `if` statement body. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("amount") +`)) }) +``` + +You should assign an empty `input()` call to your `amount` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input()") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index 76034484647..15f326cb257 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -1,6 +1,6 @@ --- id: 658252f6b1526d57b103d48a -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- @@ -13,17 +13,11 @@ Pass the string `'Enter amount: '` to your empty `input()` call, so you can stor # --hints-- -You should have `amount = input('Enter amount: ')` in your `if` statement. +You should pass `'Enter amount: '` to the `input()` call assigned to the `amount` variable. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*("|')Enter amount:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input('Enter amount: ')") +`)) }) ``` # --seed-- @@ -44,7 +38,6 @@ def total_expenses(expenses): def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) ---fcc-editable-region-- def main(): expenses = [] while True: @@ -56,7 +49,7 @@ def main(): print('5. Exit') choice = input('Enter your choice: ') - +--fcc-editable-region-- if choice == '1': amount = input() --fcc-editable-region-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index f050318957d..275d3f75aac 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -1,6 +1,6 @@ --- id: 658254db6e12485a48130f57 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- @@ -13,17 +13,11 @@ Pass `input('Enter amount: ')` to the `float()` function. # --hints-- -You should have `amount = float(input('Enter amount: '))` in your `if` statement. +You should pass `input('Enter amount: ')` to the `float()` function in the assignment of `amount`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = float(input('Enter amount: '))") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index 1daa73cbdfa..0249ed79c87 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -1,27 +1,26 @@ --- id: 658255d5f955175b270f251d -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- # --description-- -Inside your `if` statement, create a variable `category` to store the expense category. Assign it `input('Enter category: ')`. +Inside your `if` statement, create a variable named `category` to store the expense category. Assign it a call to `input()` and use the `'Enter category: '` as the argument. # --hints-- -You should have `category = input('Enter category: ')` in your `if` statement. +You should declare a variable named `category` in your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("category")`)) }) +``` + +You should assign `input('Enter category: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("category").is_equivalent("category = input('Enter category: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index 25b4133071c..fd25bf41ee6 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -1,13 +1,13 @@ --- id: 6582575b8089f85b8b92d7c8 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- # --description-- -After getting the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. +Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. @@ -17,17 +17,22 @@ After getting the `amount` and `category` using `input()`, call the `add_expense # --hints-- -You should have `add_expense(expenses, amount, category)` in your `if` statement. +You should call the `add_expense()` function within your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)\s*add_expense\s*\(\s*expenses\s*,\s*amount\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_calls("add_expense")) == 1`)) }) +``` + +You should pass three arguments to your `add_expense()` call: `expenses`, `amount`, and `category`. The order matters. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_call("add_expense(expenses, amount, category)")`)) }) +``` + +Your `add_expense()` call should come after the assignment of `amount` and `category`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].is_equivalent("amount = float(input('Enter amount: '))\\ncategory = input('Enter category: ')\\nadd_expense(expenses, amount, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index ef4d026b48e..7ca152b9bde 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -1,42 +1,31 @@ --- id: 658258c0e5fbe85c14c060cf -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- # --description-- -To list all expenses, you can use an `elif` statement after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. +To list all expenses, you can use an `elif` clause after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. -Create an `elif` statement to check if the user's choice equals the string `2`. Inside the `elif` statement, print the string `'\nAll Expenses:'`. +Create an `elif` clause to check if the user's choice equals the string `'2'`. Inside the `elif` clause, print the string `'\nAll Expenses:'`. # --hints-- -You should have `elif choice == '2':` after your `if` statement. +You should create an `elif` clause that checks that `choice` is equal to `'2'` after your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[1] +cond.is_equivalent("choice == '2'") or cond.is_equivalent("'2' == choice") +`)) }) ``` -You should have `print('\nAll Expenses:')` inside your `elif` statement. +You should print `'\nAll Expenses:'` inside your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index d2e7d6f68c5..0bc3402cf58 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -1,6 +1,6 @@ --- id: 65825a9520a0795c8afbef50 -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- @@ -11,17 +11,16 @@ After the `print()` call, call the `print_expenses` function to display all the # --hints-- -You should have `print_expenses(expenses)` in your `elif` statement. +You should call the `print_expenses()` function within your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)\s*print\s*_expenses\s*\(\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].find_calls("print_expenses")) == 1`)) }) +``` + +You should pass the `expenses` list as the argument to your `print_expenses()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print_expenses(expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index 0f63dc38941..6c1297bc068 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -1,6 +1,6 @@ --- id: 65825b758fe85a5cebabc8c5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- @@ -13,30 +13,19 @@ If it's true, it means the user wants to see the total expenses. So call `print( # --hints-- -You should have `elif choice == '3':` in your code. +You should create an `elif` clause that checks if `choice == '3'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert.match(function_body, /\s+elif\s+choice\s*==\s*("|')3\1\s*:/); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[2] +cond.is_equivalent("choice == '3'") or cond.is_equivalent("'3' == choice") +`)) }) ``` -You should have `print('\nTotal Expenses: ', total_expenses(expenses))` in your `elif` statement. +You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')3\1\s*:\s*print\s*\(\s*("|')\\nTotal\sExpenses:\s\2\s*,\s*total_expenses\s*\(\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[2].has_call("print('\\\\nTotal Expenses: ', total_expenses(expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index d9b5f0b584f..676b0ec42f7 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -1,40 +1,35 @@ --- id: 65825cda2668995d5168e37c -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- # --description-- -Create another `elif` statement that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. +Create another `elif` clause that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. # --hints-- -You should have `elif choice == '4':` in your code. +You should create an `elif` clause that checks if `choice == '4'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[3] +cond.is_equivalent("choice == '4'") or cond.is_equivalent("'4' == choice") +`)) }) ``` -You should have `category = input('Enter category to filter: ')` in your new `elif` statement. +You should declared a variable named `category` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("category")`)) }) +``` + +You should assign `input('Enter category to filter: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("category").is_equivalent("category = input('Enter category to filter: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index 21f0252e891..d354cb667cb 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -1,6 +1,6 @@ --- id: 65825e96b5db5f5dee6bf57c -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- @@ -11,17 +11,10 @@ After getting the category, print the following f-string `f'\nExpenses for {cate # --hints-- -You should print `f'\nExpenses for {category}:'` inside the `elif` statement. +You should print `f'\nExpenses for {category}:'` after the assignment of `category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index b819b6e2eb4..669de4ae215 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -1,6 +1,6 @@ --- id: 6582601b2987045e8e7da994 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- @@ -11,17 +11,22 @@ After your `print()` call, you need to filter the expenses and print the filtere # --hints-- -You should have `expenses_from_category = filter_expenses_by_category(expenses, category)` in your `elif` statement. +You should declare a variable named `expenses_from_category` in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("expenses_from_category")`)) }) +``` + +You should call `filter_expenses_by_category()` passing `expenses` and `category` as the arguments and assign it to your `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("expenses_from_category").is_equivalent("expenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) +``` + +Your `expenses_from_category` variable should come after the `print()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index 31febcee910..4801aa6d338 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -1,27 +1,26 @@ --- id: 6582622cb6c11a5f4c5d79b4 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- # --description-- -Still within the `elif` statement, pass `expenses_from_category` iterator to a `print_expenses` call. +Still within the `elif` clause, pass the `expenses_from_category` iterator to a `print_expenses` call. # --hints-- -You should have `print_expenses(expenses_from_category)` in your code. +You should call `print_expenses()` passing `expenses_from_category` as the argument in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)\s*print_expenses\s*\(\s*expenses_from_category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_call("print_expenses(expenses_from_category)")`)) }) +``` + +Your `print_expenses()` call should come after the `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)\\nprint_expenses(expenses_from_category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index b75987c7f31..911a95cf962 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -1,42 +1,31 @@ --- id: 6582687859366a618424d84b -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- # --description-- -To provide a way to exit the program, use another `elif` statement to check if `choice` equals the string `'5'`. +To provide a way to exit the program, use another `elif` clause to check if `choice` equals the string `'5'`. -Inside the new `elif` statement, print the string `'Exiting the program.'` to show that the program is terminating its execution. +Inside the new `elif` clause, print the string `'Exiting the program.'` to show that the program is terminating its execution. # --hints-- -You should have `elif choice == '5':` in your code. +You should create an `elif` clause that checks if `choice == '5'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4] +cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice") +`)) }) ``` -You should print `'Exiting the program.'` in your new `elif` statement. +You should print `'Exiting the program.'` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:\s*print\s*\(\s*("|')Exiting\sthe\sprogram.\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 40ce7efb61b..712c3072018 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -1,27 +1,20 @@ --- id: 65826a6e9d189a623141c726 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- # --description-- -Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` statement. +Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` clause. # --hints-- -You should have a `break` statement inside your last `elif`. +You should have a `break` statement after the `print()` call inside your last `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+break/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].is_equivalent("print('Exiting the program.')\\nbreak")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index 6e91d10faa5..f2fec123e71 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -1,13 +1,15 @@ --- id: 65826af5b226a5628aa154b1 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- # --description-- -Finally, call your `main()` function, and try the expense tracker program. +Finally, call your `main()` function, and try the expense tracker program in the console. + +With that, the expense tracker project is complete! # --hints-- @@ -74,3 +76,58 @@ def main(): --fcc-editable-region-- ``` + +# --solutions-- + +```py +def add_expense(expenses, amount, category): + expenses.append({'amount': amount, 'category': category}) + +def print_expenses(expenses): + for expense in expenses: + print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') + +def total_expenses(expenses): + return sum(map(lambda expense: expense['amount'], expenses)) + +def filter_expenses_by_category(expenses, category): + return filter(lambda expense: expense['category'] == category, expenses) + + +def main(): + expenses = [] + while True: + print('\nExpense Tracker') + print('1. Add an expense') + print('2. List all expenses') + print('3. Show total expenses') + print('4. Filter expenses by category') + print('5. Exit') + + choice = input('Enter your choice: ') + + if choice == '1': + amount = float(input('Enter amount: ')) + category = input('Enter category: ') + add_expense(expenses, amount, category) + + elif choice == '2': + print('\nAll Expenses:') + print_expenses(expenses) + + elif choice == '3': + print('\nTotal Expenses: ', total_expenses(expenses)) + + elif choice == '4': + category = input('Enter category to filter: ') + print(f'\nExpenses for {category}:') + expenses_from_category = filter_expenses_by_category(expenses, category) + print_expenses(expenses_from_category) + + elif choice == '5': + print('Exiting the program.') + break + +main() + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index 49922bc9b5e..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: Step 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index d8d59540037..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: Step 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index c23f515ffc4..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: Step 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index 8ad167aae63..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: Step 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index 584fb9a5d8a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: Step 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index 7dbe2e614a5..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: Step 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index e97b5808f71..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: Step 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index a43abb0ba7b..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: Step 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index 3430242863b..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: Step 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index 5af0cce5c50..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: Step 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index ff35d66fb64..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: Step 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index e76a4231dbe..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: Step 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 28a5a2947e6..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: Step 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 72b9ed7243f..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: Step 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index 7ed7f1e31c0..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: Step 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index 6bd82bd207a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: Step 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index 5374e9ac347..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: Step 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index 6964fe986fc..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: Step 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index 6eaadd1764c..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: Step 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index 87c913f5814..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: Step 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index ba33dba43a7..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: Step 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index 94686a45d25..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: Step 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index a131fcbe30e..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: Step 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Write another `if` statement that checks if the target key is less than the key of the current node. - -Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. - -# --hints-- - -You should write another `if` statement to check if `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -You should return `self._search(node.left, key)` from your new `if` block. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index 5c7466cecba..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: Step 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index 3d56d70cdce..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index 76f74a8e772..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 09eaa87bb9b..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: Step 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index fb38080c87f..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: Step 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index e545d3132eb..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: Step 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index f27c86f8edd..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: Step 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index 5b2008d711e..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: Step 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index f40522ef6af..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: Step 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index b17d328b8ba..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: Step 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index a22b30cf3e3..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: Step 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Remember to use the `pass` keyword. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index e700407e789..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: Step 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index 1364496a3f2..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: Step 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index d1eb6b34a1d..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: Step 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index a461e9b021b..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: Step 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index 4fc01474424..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: Step 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index 22a42efe6fe..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: Step 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index b63d2b40f74..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: Step 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index 5ec2859f695..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: Step 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index 710f4b77ac6..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: Step 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index e2cf972f28f..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: Step 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index bd138259019..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: Step 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index 183d9570a5a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: Step 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index f5eac694731..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: Step 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index 3919fea8e71..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: Step 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index 03d6252fa8a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: Step 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index 8848fcf5b80..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: Step 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index 0f4e6ba8b31..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: Step 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index 8d29f6d4836..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: Step 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index 1c9d6cb8d6a..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: Step 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index 85aff713768..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: Step 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 6a2f0b21388..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: Step 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index e050aa88887..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: Step 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index f0878d8e559..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: Step 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index cae7381e0b5..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: Step 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index 584dca42b97..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: Step 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index 0c273694135..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: Step 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index 9469c66566b..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: Step 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index c89bf530f0e..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: Arithmetic Formatter -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -Students in primary school often arrange arithmetic problems vertically to make them easier to solve. For example, "235 + 52" becomes: - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. The function should optionally take a second argument. When the second argument is set to `True`, the answers should be displayed. - -## Example - -Function Call: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -Output: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -Function Call: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -Output: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## Rules - -The function will return the correct conversion if the supplied problems are properly formatted, otherwise, it will **return** a **string** that describes an error that is meaningful to the user. - -- Situations that will return an error: - - If there are **too many problems** supplied to the function. The limit is **five**, anything more will return: `'Error: Too many problems.'` - - The appropriate operators the function will accept are **addition** and **subtraction**. Multiplication and division will return an error. Other operators not mentioned in this bullet point will not need to be tested. The error returned will be: `"Error: Operator must be '+' or '-'."` - - Each number (operand) should only contain digits. Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - Each operand (aka number on each side of the operator) has a max of four digits in width. Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- If the user supplied the correct format of problems, the conversion you return will follow these rules: - - There should be a single space between the operator and the longest of the two operands, the operator will be on the same line as the second operand, both operands will be in the same order as provided (the first will be the top one and the second will be the bottom). - - Numbers should be right-aligned. - - There should be four spaces between each problem. - - There should be dashes at the bottom of each problem. The dashes should run along the entire length of each problem individually. (The example above shows what this should look like.) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index a66e608eaff..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: Budget App -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. It should be able to instantiate objects based on different budget categories like *food*, *clothing*, and *entertainment*. When objects are created, they are passed in the name of the category. The class should have an instance variable called `ledger` that is a list. The class should also contain the following methods: - -- A `deposit` method that accepts an amount and description. If no description is given, it should default to an empty string. The method should append an object to the ledger list in the form of `{"amount": amount, "description": description}`. -- A `withdraw` method that is similar to the `deposit` method, but the amount passed in should be stored in the ledger as a negative number. If there are not enough funds, nothing should be added to the ledger. This method should return `True` if the withdrawal took place, and `False` otherwise. -- A `get_balance` method that returns the current balance of the budget category based on the deposits and withdrawals that have occurred. -- A `transfer` method that accepts an amount and another budget category as arguments. The method should add a withdrawal with the amount and the description "Transfer to [Destination Budget Category]". The method should then add a deposit to the other budget category with the amount and the description "Transfer from [Source Budget Category]". If there are not enough funds, nothing should be added to either ledgers. This method should return `True` if the transfer took place, and `False` otherwise. -- A `check_funds` method that accepts an amount as an argument. It returns `False` if the amount is greater than the balance of the budget category and returns `True` otherwise. This method should be used by both the `withdraw` method and `transfer` method. - -When the budget object is printed it should display: - -- A title line of 30 characters where the name of the category is centered in a line of `*` characters. -- A list of the items in the ledger. Each line should show the description and amount. The first 23 characters of the description should be displayed, then the amount. The amount should be right aligned, contain two decimal places, and display a maximum of 7 characters. -- A line displaying the category total. - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -Besides the `Category` class, create a function (outside of the class) called `create_spend_chart` that takes a list of categories as an argument. It should return a string that is a bar chart. - -The chart should show the percentage spent in each category passed in to the function. The percentage spent should be calculated only with withdrawals and not with deposits. Down the left side of the chart should be labels 0 - 100. The "bars" in the bar chart should be made out of the "o" character. The height of each bar should be rounded down to the nearest 10. The horizontal line below the bars should go two spaces past the final bar. Each category name should be written vertically below the bar. There should be a title at the top that says "Percentage spent by category". - -This function will be tested with up to four categories. - -Look at the example output below very closely and make sure the spacing of the output matches the example exactly. - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 3eecb64613e..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: Polygon Area Calculator -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Rectangle class - -When a Rectangle object is created, it should be initialized with `width` and `height` attributes. The class should also contain the following methods: - -- `set_width` -- `set_height` -- `get_area`: Returns area (`width * height`) -- `get_perimeter`: Returns perimeter (`2 * width + 2 * height`) -- `get_diagonal`: Returns diagonal (`(width ** 2 + height ** 2) ** .5`) -- `get_picture`: Returns a string that represents the shape using lines of "\*". The number of lines should be equal to the height and the number of "\*" in each line should be equal to the width. There should be a new line (`\n`) at the end of each line. If the width or height is larger than 50, this should return the string: "Too big for picture.". -- `get_amount_inside`: Takes another shape (square or rectangle) as an argument. Returns the number of times the passed in shape could fit inside the shape (with no rotations). For instance, a rectangle with a width of 4 and a height of 8 could fit in two squares with sides of 4. - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Square class - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## Usage example - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -That code should return: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index 7da3abff565..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: Probability Calculator -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -Suppose there is a hat containing 5 blue balls, 4 red balls, and 2 green balls. What is the probability that a random draw of 4 balls will contain at least 1 red ball and 2 green balls? While it would be possible to calculate the probability using advanced mathematics, an easier way is to write a program to perform a large number of experiments to estimate an approximate probability. - -For this project, you will write a program to determine the approximate probability of drawing certain balls randomly from a hat. - -First, create a `Hat` class in `main.py`. The class should take a variable number of arguments that specify the number of balls of each color that are in the hat. For example, a class object could be created in any of these ways: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -A hat will always be created with at least one ball. The arguments passed into the hat object upon creation should be converted to a `contents` instance variable. `contents` should be a list of strings containing one item for each ball in the hat. Each item in the list should be a color name representing a single ball of that color. For example, if your hat is `{"red": 2, "blue": 1}`, `contents` should be `["red", "red", "blue"]`. - -The `Hat` class should have a `draw` method that accepts an argument indicating the number of balls to draw from the hat. This method should remove balls at random from `contents` and return those balls as a list of strings. The balls should not go back into the hat during the draw, similar to an urn experiment without replacement. If the number of balls to draw exceeds the available quantity, return all the balls. - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). This function should accept the following arguments: - -- `hat`: A hat object containing balls that should be copied inside the function. -- `expected_balls`: An object indicating the exact group of balls to attempt to draw from the hat for the experiment. For example, to determine the probability of drawing 2 blue balls and 1 red ball from the hat, set `expected_balls` to `{"blue":2, "red":1}`. -- `num_balls_drawn`: The number of balls to draw out of the hat in each experiment. -- `num_experiments`: The number of experiments to perform. (The more experiments performed, the more accurate the approximate probability will be.) - -The `experiment` function should return a probability. - -For example, if you want to determine the probability of getting at least two red balls and one green ball when you draw five balls from a hat containing six black, four red, and three green. To do this, you will perform `N` experiments, count how many times `M` you get at least two red balls and one green ball, and estimate the probability as `M/N`. Each experiment consists of starting with a hat containing the specified balls, drawing several balls, and checking if you got the balls you were attempting to draw. - -Here is how you would call the `experiment` function based on the example above with 2000 experiments: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -Since this is based on random draws, the probability will be slightly different each time the code is run. - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index 6c6e1727299..00000000000 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: Time Calculator -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -Write a function named `add_time` that takes in two required parameters and one optional parameter: - -- a start time in the 12-hour clock format (ending in AM or PM) -- a duration time that indicates the number of hours and minutes -- (optional) a starting day of the week, case insensitive - -The function should add the duration time to the start time and return the result. - -If the result will be the next day, it should show `(next day)` after the time. If the result will be more than one day later, it should show `(n days later)` after the time, where "n" is the number of days later. - -If the function is given the optional starting day of the week parameter, then the output should display the day of the week of the result. The day of the week in the output should appear after the time and before the number of days later. - -Below are some examples of different cases the function should handle. Pay close attention to the spacing and punctuation of the results. - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -Do not import any Python libraries. Assume that the start times are valid times. The minutes in the duration time will be a whole number less than 60, but the hour can be any whole number. - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index a895820de7d..7caf813a382 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -In this project, you will learn the basics of CSS(Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. As you learned in the last few steps of the Cat Photo App, there is a basic structure needed to start building your web page. Every HTML document should have a `DOCTYPE` declaration and `html` element. The `DOCTYPE` tells the browser which version of HTML the document is in. And the `html` element represents the root element which contains all other elements. diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md index 1dfd8dd2abc..0d6ec6dd9c4 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md @@ -15,7 +15,7 @@ Here is an example of an `img` element with a `src` attribute pointing to the fr ``` -Inside the existing `img` element, add an `src` attribute with this URL: +Inside the existing `img` element, add a `src` attribute with this URL: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` @@ -27,7 +27,7 @@ Your code should have an `img` element. You may have removed the `img` element o assert(document.querySelector('img')); ``` -Your `img` element should have an `src` attribute. You have either omitted the attribute or have a typo. Make sure there is a space between the element name and the attribute name. +Your `img` element should have a `src` attribute. You have either omitted the attribute or have a typo. Make sure there is a space between the element name and the attribute name. ```js assert(document.querySelector('img').src); diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md index 39ea0c44697..32a292ff777 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md @@ -21,7 +21,7 @@ Turn the image into a link by surrounding it with necessary element tags. Use `h # --hints-- -You should have an `img` element with an `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. You may have accidentally deleted it. +You should have an `img` element with a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. You may have accidentally deleted it. ```js assert( diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md index 598d347b67e..4807036d47d 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -After the unordered list, add a new image with an `src` attribute value set to: +After the unordered list, add a new image with a `src` attribute value set to: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` @@ -40,13 +40,13 @@ assert( ); ``` -The new image does not have an `src` attribute. Check that there is a space after the opening tag's name and/or there are spaces before all attribute names. +The new image does not have a `src` attribute. Check that there is a space after the opening tag's name and/or there are spaces before all attribute names. ```js assert($('section')[1].lastElementChild.hasAttribute('src')); ``` -The new image should have an `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Make sure the `src` attribute's value is surrounded with quotation marks. +The new image should have a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Make sure the `src` attribute's value is surrounded with quotation marks. ```js assert( diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index b7623be513b..e6dc8123c7e 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -38,7 +38,7 @@ assert( ); ``` -The third image should have an `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. +The third image should have a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index f868fcd598d..b302f230c00 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -Inside your `.cat-left-ear` element, create another `div` element with the class `cat-left-inner-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -You should not change the existing `div` element with the class `cat-left-ear`. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -You should have a `div` element inside your `.cat-left-ear` element. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -Your `div` element should have the class `cat-left-inner-ear`. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index deb18782568..00000000000 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: Step 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Inside your `.cat-right-ear` element, create another `div` element with the class `cat-right-inner-ear`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-right-ear`. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -You should have a `div` element inside your `.cat-right-ear` element. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index ae13eae4db7..ee0caae40bc 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: Step 23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index c5a81a67364..ce53081aac5 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: Step 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index a0b737ac3d9..538628138c5 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: Step 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index 3bcd393bf42..697d05881cf 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: Step 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index 51bb049e2dd..b37aa9386b2 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: Step 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index dfce258d838..a15d11652bd 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: Step 28 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index d4525731d1f..728e81fbcde 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: Step 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ As you did for the left ear, rotate the right ear at 45 degrees. # --hints-- -You should set the `transform` property of your `.right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. +You should set the `transform` property of your `.cat-right-ear` element to `rotate(45deg)`. Don't forget to add a semi-colon. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index bbd36a62759..bcd8818718c 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: Step 30 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index bb200fd1069..1c5bed7e7e1 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: Step 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ The ears should always be placed above the part of the head it overlaps. You can `z-index` is a property you can use to define the order of overlapping HTML elements. Any element with a higher `z-index` will always be positioned over an element with a lower `z-index`. -To see `z-index` in action, set the `z-index`property of the left ear to `-1`. +To see `z-index` in action, set the `z-index` property of the left ear to `-1`. # --hints-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index 7f2be20c198..bb3dcf1a0ed 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: Step 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index b892d61ca1d..3b3efbf0154 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,13 +1,13 @@ --- id: 646cfde6ac612e5d60391f50 -title: Step 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- -Set the `z-index`property of the right ear to `1` so it always stays over the head. +Set the `z-index` property of the right ear to `1` so it always stays over the head. # --hints-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index 1d7411ad660..946620f1758 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: Step 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index 8be0ea3110e..963468c2e2d 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: Step 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index 7e24c8e937c..14a5d7aeaf6 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: Step 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index ba3b89e07d1..c2f979d3992 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: Step 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index f48ba0bd881..625e32f4b04 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: Step 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index 12d8b78a661..cd41b1ae9d5 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: Step 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index 5a2488dca6b..f3a52b3a435 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: Step 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- You will now start working on the cat's eyes. Like the ears, the eyes will have inner eyes. -Create a `div` element with the class `cat-eyes`. Inside the `cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. +Create a `div` element with the class `cat-eyes`. Inside the `.cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. # --hints-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index 9b995228d29..60c5597b279 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -1,13 +1,13 @@ --- id: 646ddd3f9f97a0667b964bdb -title: Step 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- -Inside the `.cat-left-eye` element, create another `div` element with the class `cat-left-inner-eye`. +Create two `div` elements, one with the class `cat-left-inner-eye` inside the `.cat-left-eye` element and another with the class `cat-right-inner-eye` inside the `.cat-right-eye` element. # --hints-- @@ -17,18 +17,36 @@ You should not change the existing `div` element with the class `cat-left-eye`. assert(document.querySelectorAll('div.cat-left-eye').length === 1); ``` -You should have a `div` element inside your `.cat-left-eye` element. +You should not change the existing `div` element with the class `.cat-right-eye`. + +```js +assert(document.querySelectorAll('div.cat-right-eye').length === 1); +``` + +You should have one `div` element inside your `.cat-left-eye` element. ```js assert(document.querySelectorAll('.cat-left-eye div').length === 1); ``` -Your `div` element should have the class `cat-left-inner-eye`. +You should have one `div` element inside your `.cat-right-eye` element. + +```js +assert(document.querySelectorAll('.cat-right-eye div').length === 1); +``` + +The new `div` element inside `.cat-left-eye` should have the class `cat-left-inner-eye`. ```js assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('cat-left-inner-eye')); ``` +The new `div` element inside `.cat-right-eye` should have the class `cat-right-inner-eye`. + +```js +assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); +``` + # --seed-- ## --seed-contents-- @@ -57,9 +75,11 @@ assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index 5bad715a154..00000000000 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: Step 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -Inside the `.cat-right-eye` element, create another `div` element with the class `cat-right-inner-eye`. - -# --hints-- - -You should not change the existing `div` element with the class `cat-left-eye`. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -You should have a `div` element inside your `.cat-right-eye` element. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -Your `div` element should have the class `cat-right-inner-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index 9cf9b19e226..3025f51126d 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: Step 43 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index 45ed732e12d..e3805aff89c 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: Step 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Move the left eye into position with a `position` property of `absolute` a `top` of `54px`, and a `left` of `39px`. +Move the left eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `39px`. # --hints-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index 38088bba67e..eeb4f6d36ea 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: Step 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index b9dc455e5b1..aeb0f28cdfb 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: Step 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index 1cae6709360..07eb2b5743c 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: Step 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index b376c539f32..1653bbb1dc4 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: Step 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index 74ba34db408..6a3aa491180 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: Step 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index b0243121123..c236ed959a2 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: Step 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index 1b344dc94cc..256aa6b6f3c 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: Step 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index f7933f8c3dc..8cb28e7f912 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -1,8 +1,8 @@ --- id: 646dec359bef3b7811fba5a6 -title: Step 52 +title: Step 50 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index 143f0179cfe..a432b12d87f 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: Step 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index bf02b9cf8fc..fd22b0e9cc9 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: Step 54 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index ef9238633b8..b8f6c676584 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: Step 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index 0318f9d7f46..a22b558dcdb 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: Step 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index 9d8231e174b..b4ad71b5cf1 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: Step 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -13,13 +13,13 @@ Create a `div` element with the class `cat-mouth`. # --hints-- -You should create a `div` element. +You should create a `div` element. ```js assert(document.querySelectorAll('div').length === 13) ``` -Your `div` element should have the class `cat-mouth` +Your `div` element should have the class `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index 3ef80ee39bb..3a67bcd4a44 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: Step 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index a561360c7e9..37ce01315b7 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: Step 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ Using a class selector, give your `.cat-mouth-line-left` element a `position` of # --hints-- -You should have a `cat-mouth-line-left` selector. +You should have a `.cat-mouth-line-left` selector. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index 46ce69b8f2c..1afaafa8827 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: Step 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- @@ -11,7 +11,7 @@ Using the `transform` property, rotate the left mouth line at `170` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(170deg)`. +Your `.cat-mouth-line-left` selector should have a `transform` property set to `rotate(170deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')?.transform === 'rotate(170deg)') diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index 03853c3938b..a60c0d8e84f 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: Step 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index 2a01ed169d2..cac8db8cac6 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: Step 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ Rotate the right mouth line at `165` degrees. # --hints-- -Your `.cat-mouth-line-left` property should have a `transform` property set to `rotate(165deg)`. +Your `.cat-mouth-line-right` selector should have a `transform` property set to `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index 3d75bf77a02..aa23dfd3734 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: Step 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index 6e28a86659a..ca3d9da8be1 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -1,8 +1,8 @@ --- id: 646f0ef13604420a8744f7d4 -title: Step 66 +title: Step 64 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index 291e0fbd52d..27c8d1b7436 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: Step 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index 820cbd44d12..2deb1876a86 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: Step 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index 741c609e6b3..77ba6057c0d 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: Step 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index b1c107c9c2e..c01636a6571 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: Step 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index 9ae2339b4dc..be472910e42 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: Step 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index c0b941997a6..d0c12963155 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: Step 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index 0a537b0812d..3d226cf8361 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: Step 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index 651a9405914..131eb4c27a7 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: Step 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index bc03c983374..25b09b6b780 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: Step 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index e365b97d693..ae6fe0da1e7 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: Step 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index f13a5c03ba4..51e0a54f9d3 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: Step 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index 2f79cbf9301..3b1df51c87b 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: Step 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Use a class selector to target the `cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. +Use a class selector to target the `.cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. # --hints-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index a7d861a1258..74373bf86a8 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: Step 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index d0cf2b64a3f..dc4cc6ac10e 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: Step 81 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index 3bf9207660e..b26c9df7044 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: Step 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index a7597864564..fb0bd2774f6 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 You should now center the cat head. -Give the `.cat-head` element a position property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. +Give the `.cat-head` element a `position` property set to `absolute`. Set a value of `0` for the `right`, `left`, `top`, `bottom` properties, then set its `margin` property on all sides to `auto`. That's one way to center an element vertically and horizontally using CSS positioning. # --hints-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 04963838659..133bb34ac00 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: Step 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index d46fbf6da0d..ecda03a6274 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: Step 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index 4f3a8d2de51..a7088c04c4a 100644 --- a/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/korean/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: Step 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 347d86b778c..e81c63a1711 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index 1b7ca642e11..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: Step 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Finally, return the value of `median`. - -Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. However, it is important to remember that shorter code is not always better code. In this case, reducing the lines of code would make the code harder to read and understand, impacting future maintainability. - -# --hints-- - -Your `getMedian` function should return the value of `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index 3dd73d29b0d..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: Step 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index 46a51139d31..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: Step 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 0f02d3db86f..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: Step 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index d2212d75820..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: Step 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index 2dfb4cbc78f..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: Step 28 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index f1a2d7a1a84..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: Step 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index e0b4b5af12f..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: Step 30 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index 2283eb12edc..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: Step 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index e452ae139ef..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: Step 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -You should return `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index 1577e58fe42..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: Step 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -You should have a constant called `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index 7f11d68152e..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: Step 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index 887a0c6dccd..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: Step 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..1dd73ecc04b --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index b05e6b5ed0d..3360c93b50d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index 31b5aab1949..0eac43fb139 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index 872f15c114d..17f15765aa0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index da746753d28..2607be95cff 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index fcacc62099d..f191e66cf0f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md index 00ed710db32..c9a2b3d8323 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index 5e2699cd92f..697a961ebe4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index d08f231f391..7e6e32a5fd4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index c9222ca37a2..fb235c822c5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index fe761e7f5dd..9a45437b3b7 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index 4d2f4e4141a..147905bc8f0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index 9edacf0701a..7e575e0125c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index fdaf7b63f09..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: Step 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -Variables can be assigned a value. When you do this while you declare it, this is called initialization. For example: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Initialize your `xp` variable to have a value of `0`, a number. - -# --hints-- - -`xp` should have a value of `0`. - -```js -assert.equal(xp, 0); -``` - -You should initialize the `xp` variable to `0`. Don't forget the semi-colon at the end of the line. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index 7ccd56b9984..8c73975833f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Create another variable called `currentWeapon` and set it to `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -You should use `let` to declare a variable called `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` You should use camelCase to name your variable. ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -Your `currentWeapon` variable should be set to `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` You should initialize your variable to `0`. ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index 6b71718528e..c09d8bbd79c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index 2a4b553972f..34d9459ba8c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index 5d225d1b9b4..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: Step 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -The variables you have assigned have all had values that are numbers. JavaScript has multiple different data types. The next one you will use is the string. Strings are used to store things like words or text. Strings are surrounded with double quotes, single quotes, or backticks. Here is an example of declaring a variable with a string: - -```js -let developer = "Naomi"; -``` - -Assign the `inventory` variable to have the value of `stick`. - -# --hints-- - -You should set `inventory` to the string `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -You should initialize your `inventory` variable with the string `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index 74ecef7e8d3..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: Step 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -The player's inventory in your game will be able to hold multiple items. You will need to use a data type that can do this. An array can be used to hold multiple values. For example: - -```js -let order = ["first", "second", "third"]; -``` - -This is an array which holds three values. Notice how the values are separated by commas. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -Your `inventory` variable should be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should have three values. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -Your `inventory` variable should have the values in the correct order. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index b95da4d2f15..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: Step 14 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -Your `inventory` variable should still be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should only have one value. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index d75e6619d33..e13e235a23c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index 63b8f3a8475..9caf7e829c1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index 491cbbb3fe3..01d81e0c3b4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index 88bcd739238..4e05e0cab79 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index b1c4d1d1b36..92af71dab77 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 32cd3d6a758..1a0976099be 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index 0d1dfed3a01..3797e2709d6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 902edafc6b3..8236d006fdf 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 2638ce9ae52..ecd7b41e551 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 46025e90ee2..4899b136971 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index a1779a579fa..af1ce60c93d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 7c76591109f..1e0c4282c4f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 2be712694cf..a5fcd2f1dec 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index cc90d211dd4..6040d1028d3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index b0dfcbb9d7b..2998105596f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index d1a2df0ea4b..1210d1b0e3b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 5b43ac85352..752b1671817 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index f31a581cc2d..1086d92ce39 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index 353d61ea5b0..9fa40be79c3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 1841ae43c76..25e82fda63c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 1a4ddfa7458..14eefc67a6e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index 7ddfe20a7f7..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: Step 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -Object properties are written as `key: value` pairs, where `key` is the name of the property (or the key), and `value` is the value that property holds. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"town square"`. - -# --hints-- - -Your first value of `locations` should be an object. - -```js -assert.isObject(locations[0]); -``` - -Your first value of `locations` should have a `name` property. - -```js -assert.isDefined(locations[0].name); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index 12891538908..6474b8db7c7 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index c318e051bc8..4ed6343fd96 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 4337bbb7817..442032d8950 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index 84e25aa3479..75a9b22ce50 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index b3d8e3a6ced..cb2e7bdaeaa 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 76419553abe..05f08bb6a19 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 6a2fd6dd18e..60ab0a2b874 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index ee22bd5db18..44fd2f7eb9c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index 42fa1b7156b..1dc5232b378 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 6df6d825b45..b54ee029164 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index 64dbdadcc64..5dbb6907d42 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index 69288ecb4e1..88610822650 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index 0bc2ea4f339..9eecaaee678 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index 7e8b7d6f71e..1848eab1431 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index cb1dab4a818..dda03f4aa4a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 87f4686de53..1b71205f170 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index b0c4f008224..eb77b88b3b0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 7f9be4c607c..10e1f6ce3fa 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 43844bfd6fa..2ea876ddf24 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index 407ef30337e..addf8147369 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index b32a4624174..83b34def3df 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index 03a101706ac..646a274c94a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index 23684174766..c2df7ba8924 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index a5108647216..e35ee493c6b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index df552626f1b..adad93a5c6b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index 9a18056f74e..470f9065bec 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index 57cf505e52b..bb8a07042e3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index a210376fd75..b3592e5aa14 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index 641048de2e1..0f65c77df04 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -The value of the `currentWeapon` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -In the `buyWeapon` function, use compound assignment to add `1` to `currentWeapon` - the user is buying the next weapon in the `weapons` array. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -You should use compound assignment to add one to `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -Your `buyWeapon` function should increase `currentWeapon` by `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Your code should be in your `if` statement. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index a4c118f6f3d..1bd4b3f4533 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Change your `currentWeapon` assignment to use the increment operator. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -You should use the increment operator to increase `currentWeapon` by `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -You should not use compound assignment to increase `currentWeapon` by `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 0288af76ebf..da2f57a2940 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 0509fd0209f..bd061db00af 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 0ce8646d7ba..d72680595d4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeapon` within the brackets. +Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeaponIndex` within the brackets. When you use a variable in bracket notation, you are accessing the property or index by the *value* of that variable. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index eb78febdb46..6f6157eec95 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` is an object. Use dot notation to get the `name` property of that object. +`weapons[currentWeaponIndex]` is an object. Use dot notation to get the `name` property of that object. # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 065a312d032..b4717bed9e8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 33fcfc81e1d..1d2fa00beec 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ Your `buyWeapon` function should add the value of `newWeapon` to the `inventory` ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index c2c10d03e5b..5443169577e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index 049fa2470e9..baf137a8530 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index 0843051f507..47211f51cf4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index 35bd5b0666b..cd43584c827 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeapon` is less than `3` - the index of the last weapon. +Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -You should have a new `if` statement that checks if `currentWeapon` is less than `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` Your existing `if` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); Your existing `else` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index 71fd3d9c5b4..663cb53c8c4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Arrays have a `length` property that returns the number of items in the array. You may want to add new values to the `weapons` array in the future. -Change your `if` condition to check if `currentWeapon` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ You should use the `length` property on the `weapons` array. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -Your `if` statement should check if `currentWeapon` is less than `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index 00bcc81def5..4632b674d6f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -The `currentWeapon` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. Change the `if` condition to check `weapons.length - 1`, instead of `weapons.length`. @@ -23,10 +23,10 @@ You should update the condition to subtract `1` from `weapons.length`. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -Your condition should check if `currentWeapon` is less than `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 88e988b4342..cc1c4b8273d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 7beafd0a495..041472b56b8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 194d6d2130b..cc73efed14f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index a23450f5ed4..763f646b62b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 0d176b81c7f..975c6446f0f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index 0032e30ee54..93b5c9babb8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Notice that you already have a `currentWeapon` variable elsewhere in your code. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 4e7f9117a26..59e803ef18d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index 0ce7ffb6314..d53accb8e69 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` Your `text.innerText` should update to the proper string. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index 44e4ab1926b..65721659631 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index f5bbad9e0d1..682a5fe76bd 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index b92571d3d30..abd86e35b27 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 7a5458fd606..1c6cd769027 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index a1daed21eef..3b555e0f9f9 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index 331e94c38eb..39a1ab9c522 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 2c8be2f2d00..9d1aebd3d08 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index c26c417f4d0..2312c7efe25 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 507f9e51e21..96029139026 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index eb32394270b..56b799d223d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index 58bc33ab805..4161214cad4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 437ca16fc9b..2b27d636b1f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index d370d9899e7..c9db1c10266 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index c6f89860b85..bb8a96a906d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeapon].name`. +You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index c66f059b602..040babab4ec 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index d59c6a933e7..6225b405f50 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Using these, you can generate a random number within a range. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ You should use the same `monsterHealth` line you already wrote. assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -You should add to the `weapons[currentWeapon].power` value. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` You should use `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? You should add the result of `Math.floor(Math.random() * xp) + 1` to the result of `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index d68134d2350..274040289a1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index ffd5e28f3ee..079c222ff3d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index 5b971e7aaaf..7930bd5579f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 3be7b4a8355..d7ef1c1dac8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index d5af7299e44..ac255663e19 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index 81d4dd2883d..0aede6aa27a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index 110f82cbd5b..22817a6e62f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 35a05b443aa..be06a139e03 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 024b4959d65..5766abd424a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index 3bca3e5c383..f6b904e02c3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index c1f3457b7c5..405a97fa6e2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 3ad57b17036..5d78cc4d0b5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 641e365bf76..9286fc33eb0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 5ff1b213382..22c13f88c2b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeapon` to `0`, and set `inventory` to an array with the string `stick`. +At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Also update the `innerText` properties of `goldText`, `healthText`, and `xpText` to their current values. @@ -39,10 +39,10 @@ Your `restart` function should set `gold` to `50`. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -Your `restart` function should set `currentWeapon` to `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 3f0337d819c..a132b990d3c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index 4e2d63fa3e4..bf52667c43c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index 5bb111d0b29..e318c25ce60 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 737e5a1a247..41faa44d5ef 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 1beebfe0ab7..b9f78edb5c3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index e714aedc940..7b96177a6a6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index b4f1daf80a0..f945040ccab 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index 9ac019e464d..7194de8da02 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index 648a7562e7c..ab5905353b1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 1b7a89f353f..632abe728dd 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index 4c7363d5341..7da1800af5e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ Move your `monsterHealth` assignment into your `if` block. # --hints-- -You should move your `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` into your `if` block. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index a1775d7543b..e6ce6f4616a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct You should add an `else` block after your `if (isMonsterHit())` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index 1b9384de685..89b70f7c1b3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 9219b8da936..3b985e1dbd3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 4bca7930754..fcb4a8b153e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 308f53fd795..9e1a123a719 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 0aecde7e233..28d47dffdff 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Decrement the value of `currentWeapon` in your `if` statement, after you update the text. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ You should use the decrement operator. assert.match(attack.toString(), /--/); ``` -You should decrement `currentWeapon` in your `if` statement. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index fb88f652092..aa926a8b8d8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index 84e6671d449..0ab02c6d783 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index f2c2ae3c598..705c25660dd 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index 4123ece8378..c1d224bb2dc 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index 9cf97ef1f86..8e5ad353975 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index ae21c052d6e..7f603982c95 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index 2c5359f0283..9629947e6cb 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index a674632b49b..a8fa573a795 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index 1ef1456647a..af13af000e3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 1eb6aa4c1f1..ee1f17b327b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index 9da6c0e84f1..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -`for` loops are declared with three expressions separated by semicolons. `for (a; b; c)`, where `a` is the initialization expression, `b` is the condition, and `c` is the final expression. - -The initialization expression is executed only once, before the loop starts, and is often used to define and set up the loop variable. Think of it like declaring a counter to use in your loop. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -You should change your initialization in the `for` loop to be `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index 346adeb6fa0..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -The second statement in a `for` loop, the condition statement, is evaluated at the beginning of every loop iteration. The loop will continue as long as the condition evaluates to be true. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -You should update your condition statement to be `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index 1dd28e8ad74..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -The last statement in a `for` loop, the final expression, is executed at the end of each loop iteration. - -Since we changed the initialization statement to use `i` instead of `x`, change `x++` to `i++`. This will increment the initializer `i` by 1 after each loop. - -# --hints-- - -You should change your final expression to `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index 71875c1a0ea..6045c2ab02f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 5d2de454974..5c01ee608a2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index 659e9a1e4b1..51a72303ff2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index b0868a55bf0..3b46e0900dc 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 650fe59ddd1..d5cf53b8ad6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index ebf70ca3d06..4f1db2ae242 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index db3e2b0cc04..e584e963759 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index 4210e30d01c..727d1e77172 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index f0978d9f11e..e2a20f27ac0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index c38becdee8c..52cf362e9fa 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index 27be8c27ee8..3cb2f0de300 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index 7f003419859..9a28aa35aac 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index 4ad878c1379..cfe6f8b8d46 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index c822eafb542..dca6971ea70 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index 034ba00c160..fc8341ea9a7 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -You should declare a `cleanInputString` variable. -```js -assert.isDefined(cleanInputString); -``` -Your `cleanInputString` variable should be a function. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index 33177195353..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: Step 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -You need to split your `str` into individual characters. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -Your `cleanInputString` function should declare a `strArray` variable. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Your `strArray` variable should be assigned the value of `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index 702895f1115..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: Step 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Declare a `cleanStrArray` variable and assign it an empty array. You will use this to store your valid number characters. - -# --hints-- - -Your `cleanInputString` should declare a variable called `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Your `cleanStrArray` variable should be assigned an empty array. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index d0415579d0d..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: Step 21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Use a `for` loop to iterate through each character in your `strArray` array. - -# --hints-- - -Your `cleanInputString` function should have a `for` loop. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Your `for` loop should initialize a variable called `i` to `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Your `for` loop should have a condition that checks if `i` is less than the length of `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Your `for` loop should increment `i` by `1` each time it runs. Use the increment operator for this. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index 5df5c66a21d..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: Step 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). If it is not, `push` it to the `cleanStrArray`. - -# --hints-- - -Your `for` loop should have an `if` statement. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Your `for` loop should use `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Your `for` loop should `push` `strArray[i]` to `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 4ecae222222..0f955c403d9 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Start by creating a function called `isInvalidInput` – it should take a single # --hints-- -You should declare an `isInvalidInput` variable. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` should be a function. ```js diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index 5fe11ad76a0..9a7c21d3716 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Your next step is to allow users to add entries to the calorie counter. Declare # --hints-- -You should declare an `addEntry` variable. - -```js -assert.isDefined(addEntry); -``` - -Your `addEntry` variable should be a function. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index d90798583b0..ac72cff5f7a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; Variable naming follows specific rules: names can include letters, numbers, dollar signs, and underscores, but cannot contain spaces and must not begin with a number. -Declare a `character` variable in your code. +Use the `let` keyword to declare a variable called `character`. _Note_: It is common practice to end statements in JavaScript with a semicolon. `;` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index 6109c86878c..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: Step 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index df29e216f6f..3299f7e5640 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index b0f7694109b..e9f9fe23d07 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 2b96559581a..ca35d8cb859 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index 2127d495c69..1c121cbbe24 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index 398cda48fc1..71ed46d8150 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index 3b0dc49177c..5921b02df5a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index c261f234830..e43281bfd07 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index 16a22f2668e..dddaa95ed77 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index 33c028e6f8d..f38b8d75182 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index d2ba0bf79fb..16ccc63306e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index 53b3d59e46b..eedb5b6881b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index d9b2fc82980..28fae0c4f25 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index a764950fe55..6fd6466c41f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index 55260992c8c..e0ed1bb07a8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index e7f02f1ab64..6f39a28a489 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index 7bf835e2980..7b1f6407aa2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index 5d9e5dd271e..196d33caaba 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index ffd281ac734..263f5430411 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index aa1b27b3b8b..b69f8e0dbbc 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index 40e4fb7ea38..3561f8615a4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index 3f9a4e484cf..f0a96262d2c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index d0d0ec35907..f16eed67bd0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index 384741e0b08..ec28e791da0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index 26a74a97b57..91549b48ed9 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index 3203771112a..e9d60ef611e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index 752158c5e06..e50496c6802 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index 682c0a21f4e..6611809d4b0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 2bae11a23b0..648969c6407 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index dbd0cd9c216..8bd550a7d1f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index 8dda4ef7576..b093babd6e6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index fa21bd6da3a..4e834ff31d5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index 842bc8a4014..17eb2dd5e07 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index 2205eb350ad..bc95dc2427b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index 6ebaa3c4d20..5c53e54a2b3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index 98107575b4c..a924fc3705a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index b0b532869d1..6bece0718f6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index e2a436f03bc..5377018ec25 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index 181f670e2bf..cc1532611c3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index 613864d4190..ec8df9ecdee 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index 07d46f8ad65..a6fad7652a5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index d4228908e6c..ee2a3835323 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index 91497bea8c7..61b4724c049 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index f315cc7d46b..2ba1a179f7f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index 491c95eae03..935d21b51ef 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 7b529cd64ef..ae90d953bf6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index 4c31deb35df..f8d1379029d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index c738e04771c..39dcf1879e1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index b04359d2956..3c8116ea10e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index b7739a48980..56ae5ea0366 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index b1e42130d25..1c025e2c514 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index 2dff040fb5a..23261f374fd 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 2c6ea832544..5785d1c4ea3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index c4fd278b94a..788333221b2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 424faf6da46..a3d009913bb 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index 99efd5ceec7..aacc5fea39e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index c812f27a068..2115b22b20d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index 5d2ae80a2b4..c146d07fc11 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index 0f4fc3974f9..02889219be8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index 8920dab7c38..4fb42945904 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index dbe05f32462..8f1e232a0aa 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index 6b950cdade5..ff6bd38e955 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index f5a84a23ed2..2c220456d6e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index e2591f9bf63..dbf718aab15 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index 551fa4a6b18..ccc80527488 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index 17b2cfdd8e3..6c01c8f751f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index 1f1a93dabab..4730d39973d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index 5b7c3a80f21..53aa9adb57e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index 63cf63173f6..6d82af4b1c9 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index d4c48e0dbfc..11391bb63f2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index 2c0000dfc53..816b7daf187 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index e4ed7887401..503146ba1d4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index 1e57d6fbc9c..e9a90c25e3f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 571f6866106..569683589df 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index fd5a47949a7..bbebde2405f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index 72adee2ffb1..c2e05761baa 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index 6613d119870..89443f247b1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index ff926d7c7ce..678cbf06b0d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index bb9eef96089..8e690af9381 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index 861ea76c78b..75eeb5b5805 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index 824ed7ec099..85c09bfa029 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 4a097f992be..48281144f4d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index 493677bc96f..d877c1c5b07 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index 7cdb5a91b8f..7500a6566e9 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index 6c740905e51..601c7e2ea02 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index c567a445722..7d10da11ccd 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index 1353c4ddbaa..b2d1d9bbc1f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index 0bd475bffc7..f680b76ccd0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index 02fbb7b46f2..466ae496d12 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index 233fd250034..3e5ebfb3a98 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 3479336047f..a0f8b1dc0e4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index d8be9071943..dec0d8a0176 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index ae0200d922b..6b1082544ec 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index 977994840fe..215ad3a1348 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index 7f824971d0c..67f700f766b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index 223994c9b8b..5a2d6e95567 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index c8e72499662..162c806a0f1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index f8760295236..4affcfdb01c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index 62a2c293a42..98324d9a972 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index de76244d190..e91631ce2a2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index 29feb0cf613..bbc45daaa21 100644 --- a/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Working with Text Question H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index 05765087c87..75fc123e8a2 100644 --- a/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Working with Text Question I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index e496b6b12a8..35c0cd937ec 100644 --- a/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Working with Text Question J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/korean/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/korean/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 92c630f9429..acf6ed00556 100644 --- a/curriculum/challenges/korean/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/korean/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 3fcdcc4105c..74aaa2353f6 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialogue 2: Tom Meets the Coworker Next To Him" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index 857d52d4c51..fa5b427fdc5 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Task 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index 4378e29c5a2..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 1b087682364..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --sentence-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## --blanks-- - -`didn't` - -### --feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index b151c618ba5..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index e05d1b4d18c..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 15a7e2d974a..bc57860a94a 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 8ecc2d884fc..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..7f272358313 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index 7f0e05f85c4..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 329730abb2b..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index 08a8c6eb76c..52838f37f84 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 4713f6f90e7..c4b97533063 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index 82ca13e64a4..6672cad0a72 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 3dd315d87d0..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index 905883840d1..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index b8c73e4627d..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..c2978af6438 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index 5c853b53bf8..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index e1bc9517b30..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..e5571f08f36 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..ea4e9a66215 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index 0c3e95d7e70..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 0477289c3a0..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index de300f3817e..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index be0936fbf23..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index df6f482155c..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..6947fe048c2 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..e05448d9d48 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Task 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..aaa7a3890de 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Task 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..ea5416f070f 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Task 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..91066451909 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Task 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..109deef84e4 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Task 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..5bd0b159b4a 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Task 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..527d24103b0 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Task 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..b536269cb5a 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Task 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..9ea5dfd2ec2 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Task 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..0031c5026bb 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Task 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..dc9412ebb8f 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Task 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..53772f4f629 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Task 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..564de6f07b1 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Task 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1f031ee3f1e 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Task 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..f2d572900d8 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Task 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..4b818dc4a70 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Task 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..707eb0d122d 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Task 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..e117e9317d8 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Task 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..5b4096f746c 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Task 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..7221646546e 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Task 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..03428f51432 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Task 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..287f03ddd1e 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Task 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..1538fbae725 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Task 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..331abe3703f 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Task 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..93862c576dc 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Task 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..5afcfa7c916 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Task 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..7937868764f 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Task 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..bf7fa023589 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Task 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..304a2c583d8 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Task 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..98e230933ca 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Task 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..054af388b35 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Task 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..3a5f7c3594b 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Task 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ff7dad74588 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..d41cb232f9c 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Task 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..a29433a1b9a 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Task 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..d29b5313cd6 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Task 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..aa9a85fb288 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Task 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..7eed555b4e1 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Task 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..fd66f011103 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Task 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..198f4c0b6e9 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Task 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..db488ae0a03 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Task 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..fcebb2960ea 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Task 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..b3152c55726 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Task 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..921551d84e0 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Task 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..778df3691d7 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Task 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..cf208824a34 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Task 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..7d49d97efb2 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Task 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..924dc459772 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..32c51e43652 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Task 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..bb730a97243 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Task 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..b96607f08e3 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Task 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..1649db7e147 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Task 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..4d1c3371618 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Task 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..7161861383e 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Task 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..000ef53d2ef 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Task 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..f9abd0109a4 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Task 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..b13756997fc 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Task 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..2de180a58c7 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Task 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..0866794a4e5 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Task 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..610f7a26d7a 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Task 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..185183a0410 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Task 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index a97c197e22e..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index 5674935eed0..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index a966696d7b6..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 39ecfc10ec3..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index e3c77f64da4..00000000000 --- a/curriculum/challenges/korean/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/portuguese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/portuguese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index f6e39e902bd..8d07cf35d9c 100644 --- a/curriculum/challenges/portuguese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/portuguese/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: Usar a tag s para deixar o texto tachado challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/portuguese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/portuguese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index 11518cffb2c..d65bddadb97 100644 --- a/curriculum/challenges/portuguese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/portuguese/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: Melhorar a compatibilidade do CSS com navegadores antigos challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index 59081122d19..26763be4e4d 100644 --- a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: Atribuir o valor de uma variável para outra challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index b1c3d5486f5..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: 1° passo -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index 872f776e28a..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: Passo 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index 53862d27479..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: Passo 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index ac29aa33648..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: Passo 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index 54684759a00..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: Passo 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index b2e286f0ee5..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: 6° passo -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index 0d2d59f64f3..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: 7° passo -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index 39fb5f999bf..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: 8° passo -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index a2652248077..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: 9° passo -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index 55052e07460..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: Passo 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index ea38ac8a654..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: Passo 10 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index 01b75ba59bc..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: Etapa 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index 0ad68ac795f..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: Etapa 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index ebec6c680ab..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: Passo 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index 2a71df08467..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: Passo 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index b845315d599..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: Passo 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index d6f98db4d57..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: Passo 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index 210ae0ea493..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: Passo 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index c3079ed6122..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: 19° passo -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index 503454dd56e..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: 20° passo -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index 2651c120a5b..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: Passo 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index ba50ee730cb..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: Passo 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index f09e837ac4b..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: Passo 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index 2d495a52d3e..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: Passo 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index 19d727fb364..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: Passo 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 4ee3612e9c3..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: Passo 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index 2909e8f5200..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: Passo 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index d9c22f87716..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: Passo 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index e1662e90a74..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: Passo 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index ed775da49a8..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: Passo 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index 4fd9d1a0755..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: Passo 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index a436cf0ac61..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: Passo 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index 17a2317d668..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: Passo 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index a76e339442f..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: Passo 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index eb1b772e725..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: Passo 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index ab1c78944f6..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: Passo 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index f155b422817..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: Passo 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index d49cc46a704..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: Passo 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 14fa6b624f1..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: Passo 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index 12a03d7314e..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: Passo 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index c8be90bef25..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: Passo 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index db56127e374..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: Passo 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index c85cc200443..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: Passo 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index b4c17c82276..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: Passo 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index 2f298312b00..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: Passo 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index 35dfc06a603..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: Passo 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index 70851a45d95..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: Passo 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index d7e08751a1b..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: Passo 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index 273cfb1b97c..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: Passo 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index 0d881331aab..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: Passo 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index 1e47956f62a..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: Passo 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 6419de06f4a..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: Passo 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index 30ac5602ac6..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: Passo 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index 0e7f49b8fde..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: Passo 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index 504b476d95c..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: Passo 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index 618e3cf2ca5..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: Passo 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index ec672927f94..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: Passo 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index b7f0fd30524..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: Passo 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index a4c81985b21..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: Passo 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 61bdd5e0828..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: Passo 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index c3f150d9eaf..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: Passo 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index db6f62e7608..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: Passo 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index 2a241b5ea12..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: Passo 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index 61992666b10..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: Passo 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index e094628706f..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: Passo 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index bb3792c83bd..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: Passo 66 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index fe12f0a74db..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: Passo 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index b6632dd4d7f..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: Passo 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index c19c03c1b34..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: Passo 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index eb3d0afd04f..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: Passo 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index 18c785506e3..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: Passo 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index c371d53ba45..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: Passo 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index 7306fc93f69..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: Passo 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index d4d7baef6f2..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: Passo 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index 38ca7f36855..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: Passo 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index 9cb6d08d0d3..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: Passo 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index 4b816259432..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: Passo 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index 30e8ca200ec..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: Passo 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index d9e649b00a6..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: Passo 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index 51f05e69ed6..e77dae16f2b 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -1,6 +1,6 @@ --- id: 658212ba98182f3e855e85f9 -title: Step 1 +title: 1° passo challengeType: 20 dashedName: step-1 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index f2392be1fac..7c757e3d835 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -1,6 +1,6 @@ --- id: 65821c1c40ccac44adf38e6b -title: Step 2 +title: Passo 2 challengeType: 20 dashedName: step-2 --- @@ -36,7 +36,7 @@ You should assign an empty list to the `expenses` variable. ```py def add_expense(expenses, amount, category): pass - + --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index 7f5af99e0a8..c441a4d230f 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -1,6 +1,6 @@ --- id: 65821fcc010c3245718f2a06 -title: Step 3 +title: Passo 3 challengeType: 20 dashedName: step-3 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index e89afc026b6..7ea61318978 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -1,6 +1,6 @@ --- id: 65822308ded1ba4632f66aa3 -title: Step 4 +title: Passo 4 challengeType: 20 dashedName: step-4 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index 721a796db68..01967eca699 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -1,6 +1,6 @@ --- id: 658225d560369446ece5518b -title: Step 5 +title: Passo 5 challengeType: 20 dashedName: step-5 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index 75485fdd124..07cb1e8d8fa 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -1,6 +1,6 @@ --- id: 6582267ef39f5047411c1743 -title: Step 6 +title: 6° passo challengeType: 20 dashedName: step-6 --- @@ -41,7 +41,7 @@ Your `print_expenses` function should take a single parameter `expenses`. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index 46a26e45ab9..388dc0a8716 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -1,6 +1,6 @@ --- id: 65822773f4c60a479ec89f66 -title: Step 7 +title: 7° passo challengeType: 20 dashedName: step-7 --- @@ -36,7 +36,7 @@ You should have `pass` only inside your loop body. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + --fcc-editable-region-- def print_expenses(expenses): pass diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index d8e1f7d2e9f..69693fbde14 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -1,6 +1,6 @@ --- id: 65822934c8a0454803e3ef12 -title: Step 8 +title: 8° passo challengeType: 20 dashedName: step-8 --- @@ -32,7 +32,7 @@ You should not have `pass` inside your loop body. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + --fcc-editable-region-- def print_expenses(expenses): for expense in expenses: diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index 3fa3fb568b9..b777ba26f7e 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -1,6 +1,6 @@ --- id: 65822bd82d708c4895080c35 -title: Step 9 +title: 9° passo challengeType: 20 dashedName: step-9 --- @@ -36,7 +36,7 @@ You should pass `f'Amount: {expense["amount"]}, Category: {expense["category"]}' ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + --fcc-editable-region-- def print_expenses(expenses): for expense in expenses: diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index ab3e2f9fc07..9dcd34fd44e 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -1,6 +1,6 @@ --- id: 65823040bdb32949d4c1a96f -title: Step 10 +title: Passo 10 challengeType: 20 dashedName: step-10 --- @@ -41,7 +41,7 @@ Your `total_expenses` function should take a single `expenses` parameter. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index 6e9189ed3f0..8971d40f4a0 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -1,6 +1,6 @@ --- id: 6582324b5d37fe4b622bc3c0 -title: Step 11 +title: Passo 10 challengeType: 20 dashedName: step-11 --- @@ -38,14 +38,14 @@ You should assign `lambda x: x * 2` to your `test` variable. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582352cbdbcde4d0c4f7b0b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582352cbdbcde4d0c4f7b0b.md index 60685d4ceba..0e4f8e3f2df 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582352cbdbcde4d0c4f7b0b.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582352cbdbcde4d0c4f7b0b.md @@ -1,6 +1,6 @@ --- id: 6582352cbdbcde4d0c4f7b0b -title: Step 12 +title: Etapa 12 challengeType: 20 dashedName: step-12 --- @@ -26,14 +26,14 @@ You should have `print(test(3))` in your code. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index 59eb3e3c77b..254bd1f0a2d 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -1,6 +1,6 @@ --- id: 65823634a308cb4d6bcc5fa6 -title: Step 13 +title: Etapa 13 challengeType: 20 dashedName: step-13 --- @@ -17,7 +17,7 @@ The function to execute is passed as the first argument, and the iterable is pas The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- @@ -34,14 +34,14 @@ You should have `print(map(test, [2, 3, 5, 8]))` in your code. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(test(3)) diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index d9226ae6d34..0d904e4d542 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -26,14 +26,14 @@ You should print `sum(map(test, [2, 3, 5, 8]))`. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(list(map(test, [2,3,5,8]))) diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index c7358d25594..0c4b5191a9a 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -26,14 +26,14 @@ You should delete your `test` variable and the related `print()` call. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(sum(map(test, [2, 3, 5, 8]))) diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index b056b0bb531..af93b0e12fc 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -32,11 +32,11 @@ You should not have `pass` in your `total_expenses` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + --fcc-editable-region-- def total_expenses(expenses): pass diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index 9c4390b4669..c06ab93c264 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -36,11 +36,11 @@ You should pass the `expenses` list as the second argument to the `map()` call. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + --fcc-editable-region-- def total_expenses(expenses): lambda expense: expense['amount'] diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index 9ff07605fac..29c09ae0262 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -24,11 +24,11 @@ You should call the `sum()` function passing it your current `map()` call as the ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + --fcc-editable-region-- def total_expenses(expenses): map(lambda expense: expense['amount'], expenses) diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index da444c85097..63af9be4151 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -39,14 +39,14 @@ Your `filter_expenses_by_category` function should take `expenses` and `category ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index 92b7c92c01d..289c306da64 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -30,14 +30,14 @@ You should not have `pass` inside the `filter_expenses_by_category` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + --fcc-editable-region-- def filter_expenses_by_category(expenses, category): pass diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index fe47ee9f3f2..fc8cab1fff0 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -The `filter()` function allows you to select items from an iterable, such as a list, based on the output of a function: +The `filter()` function allows you to select items from an iterable, such as a list, based on the output of a function: ```py filter(my_function, my_list) @@ -15,7 +15,7 @@ filter(my_function, my_list) `filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. -The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. @@ -46,14 +46,14 @@ You should pass `expenses` as the second argument to the `filter()` call. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + --fcc-editable-region-- def filter_expenses_by_category(expenses, category): lambda expense: expense['category'] == category diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index 99c08f3e7d1..f0f6c12e365 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -24,14 +24,14 @@ You should return the result of the `filter()` call from your `filter_expenses_b ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + --fcc-editable-region-- def filter_expenses_by_category(expenses, category): filter(lambda expense: expense['category'] == category, expenses) diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index a2f8efceb9a..cae351eee31 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -38,14 +38,14 @@ You should move the `expenses` list inside the `main()` function body. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 5471bb36c92..23b116aea50 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -37,19 +37,19 @@ You should print `'\nExpense Tracker'` in your `while` loop. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) --fcc-editable-region-- def main(): expenses = [] - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index 97d773f5cb8..150c7896f1d 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -7,7 +7,7 @@ dashedName: step-26 # --description-- -The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. +The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. @@ -30,14 +30,14 @@ all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) @@ -46,6 +46,6 @@ def main(): --fcc-editable-region-- while True: print('\nExpense Tracker') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index bee24b42de5..a557268c2db 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -28,14 +28,14 @@ all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) @@ -45,6 +45,6 @@ def main(): while True: print('\nExpense Tracker') print('1. Add an expense') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index 132862fc6fe..662e4d59211 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -48,14 +48,14 @@ all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) @@ -66,6 +66,6 @@ def main(): print('\nExpense Tracker') print('1. Add an expense') print('2. List all expenses') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index 392024966fb..6c5f7e20351 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -34,17 +34,17 @@ You should assign the result of the `input()` function, with the string `'Enter ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + --fcc-editable-region-- def main(): expenses = [] @@ -55,6 +55,6 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 240d01654e0..8f20aa4cf58 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -45,17 +45,17 @@ You should assign an empty `input()` call to your `amount` variable. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + --fcc-editable-region-- def main(): expenses = [] @@ -66,7 +66,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index 6d76794bd32..15f326cb257 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -27,17 +27,17 @@ You should pass `'Enter amount: '` to the `input()` call assigned to the `amount ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] while True: @@ -47,7 +47,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- if choice == '1': diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index 8818d086821..275d3f75aac 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -27,17 +27,17 @@ You should pass `input('Enter amount: ')` to the `float()` function in the assig ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + --fcc-editable-region-- def main(): expenses = [] @@ -48,9 +48,9 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') - + if choice == '1': amount = input('Enter amount: ') --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index 520834f9bfc..0249ed79c87 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -30,17 +30,17 @@ You should assign `input('Enter category: ')` to your `category` variable. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -51,11 +51,11 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- if choice == '1': amount = float(input('Enter amount: ')) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index 2923664b6db..fd25bf41ee6 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -9,7 +9,7 @@ dashedName: step-34 Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. -After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. +After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. - `expenses` is the empty list created in the main function earlier in this project. - `amount` is the amount of the expense. @@ -42,17 +42,17 @@ Your `add_expense()` call should come after the assignment of `amount` and `cate ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -63,12 +63,12 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- if choice == '1': amount = float(input('Enter amount: ')) category = input('Enter category: ') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index 50cb2f6a557..7ca152b9bde 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -35,17 +35,17 @@ You should print `'\nAll Expenses:'` inside your `elif` clause. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -56,13 +56,13 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') --fcc-editable-region-- if choice == '1': amount = float(input('Enter amount: ')) category = input('Enter category: ') add_expense(expenses, amount, category) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index 28de93f6f77..0bc3402cf58 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -30,17 +30,17 @@ You should pass the `expenses` list as the argument to your `print_expenses()` c ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -51,7 +51,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -61,6 +61,6 @@ def main(): --fcc-editable-region-- elif choice == '2': print('\nAll Expenses:') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index 1322922a208..6c1297bc068 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -7,7 +7,7 @@ dashedName: step-37 # --description-- -To show the total expenses, create an `elif` statement that checks if `choice == '3'`. +To show the total expenses, create an `elif` statement that checks if `choice == '3'`. If it's true, it means the user wants to see the total expenses. So call `print()` and pass the string `'\nTotal Expenses: '` as the first argument and `total_expenses(expenses)` as the second argument. @@ -35,17 +35,17 @@ You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `e ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -56,7 +56,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -67,6 +67,6 @@ def main(): elif choice == '2': print('\nAll Expenses:') print_expenses(expenses) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index 9436b4f73c1..676b0ec42f7 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -39,17 +39,17 @@ You should assign `input('Enter category to filter: ')` to your `category` varia ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -60,7 +60,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -74,6 +74,6 @@ def main(): --fcc-editable-region-- elif choice == '3': print('\nTotal Expenses: ', total_expenses(expenses)) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index c771cc30551..d354cb667cb 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -24,17 +24,17 @@ You should print `f'\nExpenses for {category}:'` after the assignment of `catego ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -45,7 +45,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -62,6 +62,6 @@ def main(): --fcc-editable-region-- elif choice == '4': category = input('Enter category to filter: ') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index 5a529fbe4bd..669de4ae215 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -36,17 +36,17 @@ Your `expenses_from_category` variable should come after the `print()` call. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -57,7 +57,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -75,6 +75,6 @@ def main(): elif choice == '4': category = input('Enter category to filter: ') print(f'\nExpenses for {category}:') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index 746e7779537..4801aa6d338 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -30,17 +30,17 @@ Your `print_expenses()` call should come after the `expenses_from_category` vari ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -51,7 +51,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -70,6 +70,6 @@ def main(): category = input('Enter category to filter: ') print(f'\nExpenses for {category}:') expenses_from_category = filter_expenses_by_category(expenses, category) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index 76316b1ba48..911a95cf962 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -35,17 +35,17 @@ You should print `'Exiting the program.'` in your new `elif` clause. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -56,7 +56,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -76,6 +76,6 @@ def main(): print(f'\nExpenses for {category}:') expenses_from_category = filter_expenses_by_category(expenses, category) print_expenses(expenses_from_category) - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 465c1008e5a..712c3072018 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -24,17 +24,17 @@ You should have a `break` statement after the `print()` call inside your last `e ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -45,7 +45,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -68,6 +68,6 @@ def main(): --fcc-editable-region-- elif choice == '5': print('Exiting the program.') - + --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index b8403971842..f2fec123e71 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -26,17 +26,17 @@ assert.match(code, /^main\s*\(\s*\)/m) ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -47,7 +47,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': @@ -58,16 +58,16 @@ def main(): elif choice == '2': print('\nAll Expenses:') print_expenses(expenses) - + elif choice == '3': print('\nTotal Expenses: ', total_expenses(expenses)) - + elif choice == '4': category = input('Enter category to filter: ') print(f'\nExpenses for {category}:') expenses_from_category = filter_expenses_by_category(expenses, category) print_expenses(expenses_from_category) - + elif choice == '5': print('Exiting the program.') break @@ -82,17 +82,17 @@ def main(): ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') - + def total_expenses(expenses): return sum(map(lambda expense: expense['amount'], expenses)) - + def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) - + def main(): expenses = [] @@ -103,7 +103,7 @@ def main(): print('3. Show total expenses') print('4. Filter expenses by category') print('5. Exit') - + choice = input('Enter your choice: ') if choice == '1': diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index d67cce026de..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: 1° passo -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index 4d7a19e3d31..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: Passo 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index 28a5ae9a5dd..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: Passo 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index 9168d1b8f07..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: Passo 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index 65c16f69271..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: Passo 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index 90ef4c66748..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: 6° passo -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index 3e52af3276b..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: 7° passo -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index 160b7721995..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: 8° passo -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index 7d9eabf4164..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: 9° passo -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index 7372795dc8d..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: Passo 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index 14f60a675c2..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: Passo 10 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index c0a38d428a1..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: Etapa 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 219051e9feb..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: Etapa 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 80652867546..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: Passo 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index e98ccb28c8d..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: Passo 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index 234feca9d11..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: Passo 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index bd8cb7979f4..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: Passo 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index aa9571f493e..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: Passo 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index 45e0330cbf5..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: 20° passo -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index 3a74d3cb8d7..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: Passo 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index 34a92ef8b46..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: Passo 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index b75b178f49c..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: Passo 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index a9442d28705..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: Passo 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Escreva outra declaração `if` que verifique se a chave de destino é menor que a chave do nó atual. - -Dentro do bloco `if`, retorne o resultado da chamada do método `_search` com o filho à esquerda do nó atual e `key` como argumentos. - -# --hints-- - -Você deve escrever outra instrução `if` para verificar se `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -Você deve retornar `self._search(node.left, key)` do novo bloco `if`. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index 9ff5df56428..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: 19° passo -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index 2267cccff9d..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: Passo 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index f7b75d263cb..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: Passo 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 71014e951c3..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: Passo 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index f946427cb64..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: Passo 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index 6b9c8bc21e3..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: Passo 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index c9829bcbf10..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: Passo 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index b8b4cdc5aea..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: Passo 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index b51bac9ad53..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: Passo 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index 7c7a94ce428..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: Passo 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index 605e807cda9..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: Passo 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Remember to use the `pass` keyword. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index 4db57185278..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: Passo 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index 51bb8399e97..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: Passo 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index 9264f543477..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: Passo 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index 2b728374300..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: Passo 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index a20e99b9913..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: Passo 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index dcd9d8b1fed..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: Passo 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index 70f3b08eac3..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: Passo 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index 60b0655a749..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: Passo 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index d0f9719c00b..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: Passo 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index 4af3c4b8b6d..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: Passo 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index 700e4767b8a..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: Passo 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index e674ea46ed5..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: Passo 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index 3c2c07c7a56..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: Passo 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index 78168da54af..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: Passo 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index 1e981d07e9d..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: Passo 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index db081d5a29e..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: Passo 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index f6ce20743f9..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: Passo 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index 0374edcdf1e..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: Passo 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index 7353ec647d8..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: Passo 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index 4cc94928708..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: Passo 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 2e6164fd325..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: Passo 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index 1b4ef6e2f35..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: Passo 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index d881644c81b..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: Passo 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index b113f28ad10..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: Passo 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index 244ebea0a1f..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: Passo 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index cdcd5112d03..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: Passo 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index 52fa771a111..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: Passo 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index ad7591e59a6..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: Formatador aritmético -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -Os alunos da escola primária geralmente organizam problemas aritméticos de modo vertical para facilitar a sua resolução. Por exemplo, "235 + 52" se torna: - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. A função deve, como opção, receber um segundo argumento. Quando o segundo argumento for definido como `True`, as respostas devem ser exibidas. - -## Exemplo - -Chamada da função: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -Resultado: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -Chamada da função: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -Resultado: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## Regras - -A função retornará a conversão correta se os problemas fornecidos forem formatados corretamente. Caso contrário, ela **retornará** uma **string** que descreve um erro significativo para o usuário. - -- Situações que retornarão um erro: - - Se **houver muitos problemas** fornecidos para a função. The limit is **five**, anything more will return: `'Error: Too many problems.'` - - Os operadores apropriados que a função aceitará são **adição** e **subtração**. A multiplicação e a divisão retornarão um erro. Outros operadores não mencionados aqui não precisarão ser testados. The error returned will be: `"Error: Operator must be '+' or '-'."` - - Cada número (operando) deve conter apenas algarismos. Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - Cada operando (ou seja, o número de cada lado do operador) tem, no máximo, quatro algarismos. Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- Se o usuário forneceu o formato correto dos problemas, a conversão retornada seguirá estas regras: - - Deve haver um único espaço entre o operador e o maior entre os dois operandos. O operador estará na mesma linha do segundo operando. Ambos os operadores estarão na mesma ordem fornecida – o primeiro será o de cima e o segundo será o de baixo. - - Os números devem estar alinhados à direita. - - Deve haver quatro espaços entre cada problema. - - Deve haver travessões abaixo de cada problema. Os travessões devem compreender todo o tamanho de cada problema individualmente. (O exemplo acima mostra como deve ser a aparência do resultado.) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index 264ed8c856d..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: Aplicativo de orçamento -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. Ela deve ser capaz de instanciar objetos com base em diferentes categorias de orçamento, como *alimentos* (food), *vestuário* (clothing) e *entretenimento* (entertainment). Quando os objetos são criados, eles são passados com o nome da categoria. A classe deve ter uma variável de instância chamada `ledger` que seja uma lista. A classe também deve conter os seguintes métodos: - -- Um método`deposit`, que aceita um valor e uma descrição. Se nenhuma descrição for dada, o padrão deverá ser uma string vazia. O método deve acrescentar um objeto à lista ledger na forma de `{"amount": amount, "description": description}`. -- Um método `withdraw`, semelhante ao método `deposit`, mas a quantia passada deve ser armazenada no ledger como um número negativo. Se não houver fundos suficientes, nada deve ser adicionado ao ledger. Este método deve retornar `True` se a retirada acontecer e, caso contrário, `False`. -- Um método `get_balance`, que retorna o saldo atual da categoria de orçamento com base nos depósitos e retiradas que ocorreram. -- Um método `transfer`, que aceita um valor e outra categoria de orçamento como argumentos. O método deverá adicionar uma retirada com o valor e a descrição "Transfer to [categoria de destino no orçamento]". O método deve, então, adicionar um depósito à outra categoria do orçamento, com o valor e a descrição "Transfer from [categoria de origem no orçamento]". Se não houver fundos suficientes, nada deve ser adicionado ao ledger. Este método deve retornar `True` se a transferência acontecer e, caso contrário, `False`. -- Um método `check_funds` que aceita um valor como um argumento. Ele retorna `False` se o valor for maior que o saldo da categoria do orçamento e, caso contrário, retorna `True`. Este método deve ser usado tanto pelo método `withdraw` como pelo método `transfer`. - -Quando o objeto de orçamento for impresso, ele deve mostrar: - -- Uma linha com título de 30 caracteres em que o nome da categoria é centralizado em uma linha com `*` caracteres. -- Uma lista dos itens no ledger. Cada linha deve mostrar a descrição e o valor. Os primeiros 23 caracteres da descrição devem ser exibidos e, depois, o valor. O valor deve estar alinhado corretamente, conter duas casas decimais e exibir um máximo de 7 caracteres. -- Uma linha que exibe o total da categoria. - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -Além da classe `Category`, crie uma função (fora da classe) chamada `create_spend_chart`, que recebe uma lista de categorias como um argumento. Ela deve retornar uma string, que é um gráfico de barras. - -O gráfico deve mostrar a porcentagem gasta em cada categoria passada para a função. A porcentagem gasta deve ser calculada apenas com retiradas, não com depósitos. No lado esquerdo do gráfico, deve haver rótulos de 0 a 100. As "barras" no gráfico de barras devem ser feitas com o caractere "o". A altura de cada barra deve ser arredondada para baixo para o 10 mais próximo. A linha horizontal abaixo das barras deve ir dois espaços além da barra final. O nome de cada categoria deve ser escrito verticalmente abaixo da barra. Deve haver um título no topo que diz "Percentage spent by category" (Porcentagem gasta por categoria). - -Esta função será testada com até quatro categorias. - -Olhe atentamente para o exemplo de resultado abaixo e certifique-se de que o espaçamento do resultado corresponde exatamente ao exemplo. - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 5e12b9fa495..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: Calculadora de área de polígono -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Classe do retângulo - -Quando um objeto de retângulo é criado, ele deve ser inicializado com atributos `width` (largura) e `height` (altura). A classe também deve conter os seguintes métodos: - -- `set_width` -- `set_height` -- `get_area`: retorna a área (`width * height`) -- `get_perimeter`: retorna o perímetro (`2 * width + 2 * height`) -- `get_diagonal`: retorna a diagonal (`(width ** 2 + height ** 2) ** .5`) -- `get_picture`: retorna uma string que representa a forma usando as linhas de "\*". O número de linhas deve ser igual à altura e o número de "\*" em cada linha deve ser igual à largura. Deve haver uma nova linha (`\n`) no final de cada linha. Se a largura ou altura for maior do que 50, é preciso retornar a string: "Too big for picture." (Muito grande para a imagem). -- `get_amount_inside`: Pega outra forma (quadrado ou retângulo) como um argumento. Retorna o número de vezes que a forma passada como argumento poderia caber dentro da forma (sem rotações). Por exemplo, um retângulo com uma largura de 4 e uma altura de 8 poderia caber em dois quadrados com lados de 4. - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Classe do quadrado - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## Exemplo de uso - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -Esse código deve retornar: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index add4efa09f1..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: Calculadora de probabilidade -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -Suponha que haja um chapéu contendo 5 bolas azuis, 4 bolas vermelhas e 2 bolas verdes. Qual é a probabilidade de um sorteio aleatório de 4 bolas conter pelo menos 1 bola vermelha e 2 bolas verdes? Embora seja possível calcular a probabilidade usando matemática avançada, uma maneira mais fácil é escrever um programa para realizar um grande número de experimentos para estimar uma probabilidade aproximada. - -Para este projeto, escreva um programa para determinar a probabilidade aproximada de retirar certas bolas aleatoriamente de um chapéu. - -First, create a `Hat` class in `main.py`. A classe deve ter um número variável de argumentos que especificam o número de bolas de cada cor que estão no chapéu. Por exemplo, um objeto da classe poderia ser criado de qualquer uma dessas maneiras: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -Um chapéu será sempre criado com pelo menos uma bola. Os argumentos passados para o objeto de chapéu após a criação devem ser convertidos em uma variável de instância `contents`. `contents` deve ser uma lista de strings contendo um item para cada bola no chapéu. Cada item da lista deve ser um nome de cor que representa uma única bola dessa cor. Por exemplo, se sua instância de Hat for `{"red": 2, "blue": 1}`, `contents` deve ser `["red", "red", "blue"]`. - -A classe `Hat` deve ter um método `draw` que aceita um argumento indicando o número de bolas a serem retiradas do chapéu. Este método deve remover bolas aleatoriamente de `contents` e retornar essas bolas como uma lista de strings. As bolas não devem voltar ao chapéu durante a retirada, à semelhança de uma experiência sem substituição. Se o número de bolas a serem retiradas exceder a quantidade disponível, retorne todas as bolas. - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). Esta função deve aceitar os seguintes argumentos: - -- `hat`: Um objeto de chapéu contendo bolas que devem ser copiadas dentro da função. -- `expected_balls`: Um objeto indicando o grupo exato de bolas que se tentará retirar do chapéu para o experimento. Por exemplo, para determinar a probabilidade de retirar 2 bolas azuis e 1 bola vermelha do chapéu, defina `expected_balls` como `{"blue":2, "red":1}`. -- `num_balls_drawn`: O número de bolas a serem retiradas do chapéu em cada experimento. -- `num_experiments`: O número de experimentos a serem realizados. Quanto mais experimentos realizados, mais precisa será a probabilidade aproximada. - -A função `experiment` deve retornar uma probabilidade. - -Por exemplo, se você quer determinar a probabilidade de obter pelo menos duas bolas vermelhas e uma bola verde ao retirar cinco bolas de um chapéu contendo seis bolas pretas, quatro vermelhas e três verdes. Para fazer isso, você realiza `N` experimentos, conta quantas vezes `M` você obtém pelo menos duas bolas vermelhas e uma bola verde e estima a probabilidade como `M/N`. Cada experimento consiste em começar com um chapéu contendo as bolas especificadas, retirar várias bolas e verificar se retirou as bolas que estava tentando retirar. - -Veja como você chamaria a função `experiment` com base no exemplo acima de 2.000 experimentos: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -Como isto é baseado em sorteios aleatórios, a probabilidade será ligeiramente diferente cada vez que o código for executado. - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index ef5f3164a1a..00000000000 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: Calculadora de tempo -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -Escreva uma função chamada `add_time`, que recebe dois parâmetros necessários e um parâmetro opcional: - -- uma hora de início no formato de relógio de 12 horas (terminando em AM ou PM) -- um tempo de duração que indica o número de horas e minutos -- (opcional) um dia de início na semana, sem distinção de maiúsculas ou minúsculas - -A função deve adicionar o tempo de duração ao horário inicial e retornar o resultado. - -Se o resultado for no dia seguinte, ele deve mostrar `(next day)` (dia seguinte) após o tempo. Se o resultado for mais de um dia depois, ele deve mostrar `(n days later)` (n dias depois) após o tempo, onde "n" é o número de dias depois. - -Se a função receber o parâmetro opcional do dia de início na semana, então o resultado deve exibir o dia da semana do resultado. O dia da semana no resultado deve aparecer após o tempo e antes do número de dias depois. - -Abaixo vemos alguns exemplos dos diferentes casos que a função deve tratar. Preste muita atenção ao espaçamento e à pontuação dos resultados. - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -Não importe nenhuma biblioteca do Python. Suponha que os horários de início são tempos válidos. Os minutos no tempo de duração serão um número inteiro menor que 60, mas a hora pode ser qualquer número inteiro. - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index 001f9cfeb2f..eb33ab24613 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -Neste projeto, você aprenderá os conceitos básicos do CSS (Cascading Style Sheets) criando um menu de restaurante. CSS é a linguagem usada para estilizar um documento HTML. Ela descreve como elementos HTML devem ser exibidos na tela. +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS é a linguagem usada para estilizar um documento HTML. Ela descreve como elementos HTML devem ser exibidos na tela. Como você aprendeu nos últimos passos do CatPhotoApp, existe uma estrutura básica para começar a construir sua página da web. Cada documento HTML deve ter uma declaração `DOCTYPE` e um elemento `html`. O `DOCTYPE` diz ao navegador em que versão do HTML o documento está. O elemento `html` representa o elemento raiz que contém todos os outros elementos. diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index f6abf1f8a6c..9341127358e 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -Dentro do elemento `.cat-left-ear`, crie outro elemento `div` com a classe `cat-left-inner-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -Você não deve alterar o elemento `div` existente com a classe `cat-left-ear`. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -Você deve ter um elemento `div` dentro do elemento `.cat-left-ear`. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -O elemento `div` deve ter a classe `cat-left-inner-ear`. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index 39b26f140a1..00000000000 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: Passo 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Dentro do elemento `.cat-right-ear`, crie outro elemento `div` com a classe `cat-right-inner-ear`. - -# --hints-- - -Você não deve alterar o elemento `div` existente com a classe `cat-right-ear`. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -Você deve ter um elemento `div` dentro do elemento `.cat-right-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -O elemento `div` deve ter a classe `cat-right-inner-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index 780bc9cd7e8..b86001b8b08 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: Passo 23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index 6bb1143b178..77243537a18 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: Passo 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index 1b68c88e2de..50daece62d7 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: Passo 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index 1a6e6778aa7..cea8416bd5c 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: Passo 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index 3f5eb0ae49e..4402de19215 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: Passo 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index 8e0da3b6bdd..2928545da07 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: Passo 28 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index 438cb40aaf6..32d629cf21b 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: Passo 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ Assim como você fez com a orelha esquerda, gire a orelha direita em 45 graus. # --hints-- -Você deve definir o atributo `transform` do elemento `.right-ear` como `rotate(45deg)`. Não se esqueça de adicionar um ponto e vírgula. +Você deve definir o atributo `transform` do elemento `.cat-right-ear` como `rotate(45deg)`. Não se esqueça de adicionar um ponto e vírgula. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index 24dc7aa62d6..e3198bcf2cb 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: Passo 30 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index d9d7bf448a1..3c64a48c5af 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: Passo 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ As orelhas devem sempre ser colocadas acima da parte da cabeça a que se sobrep `z-index` é uma propriedade que você pode usar para definir a ordem de sobreposição dos elementos do HTML. Qualquer elemento com um `z-index` maior sempre será posicionado sobre um elemento com um `z-index` menor. -Para ver o `z-index` em ação, defina a propriedade `z-index`da orelha esquerda como `-1`. +Para ver o `z-index` em ação, defina a propriedade `z-index` da orelha esquerda como `-1`. # --hints-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index 0b98c1f054b..5f20f72503e 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: Passo 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index bc1bf0e4348..773eec6ff6e 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,8 +1,8 @@ --- id: 646cfde6ac612e5d60391f50 -title: Passo 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index 0618861bfe6..d71ba3586bd 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: Passo 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index 971cd73bcba..66ade650eb1 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: Passo 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index 2a889a29042..2b78725ade2 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: Passo 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index 53c5a271d99..496d971f549 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: Passo 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index dda6c908052..87dcd32b483 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: Passo 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index 3c053d493e9..42ba4c2d7ba 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: Passo 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index ceb71357328..1bc96df0812 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: Passo 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- Agora, você vai começar a trabalhar com os olhos do gato. Assim como nas orelhas, os olhos terão uma parte interna. -Crie um elemento `div` com a classe `cat-eyes`. Dentro do elemento `cat-eyes`, crie dois elementos `div` com a classe `cat-left-eye` e `cat-right-eye`, respectivamente. +Crie um elemento `div` com a classe `cat-eyes`. Dentro do elemento `.cat-eyes`, crie dois elementos `div` com a classe `cat-left-eye` e `cat-right-eye`, respectivamente. # --hints-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index 4acfbca0de6..6870d3b967e 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -1,13 +1,13 @@ --- id: 646ddd3f9f97a0667b964bdb -title: Passo 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- -Dentro do elemento `.cat-left-eye`, crie outro elemento `div` com a classe `cat-left-inner-eye`. +Create two `div` elements, one with the class `cat-left-inner-eye` inside the `.cat-left-eye` element and another with the class `cat-right-inner-eye` inside the `.cat-right-eye` element. # --hints-- @@ -17,18 +17,36 @@ Você não deve alterar o elemento `div` existente com a classe `cat-left-eye`. assert(document.querySelectorAll('div.cat-left-eye').length === 1); ``` -Você deve ter um elemento `div` dentro do elemento `.cat-left-eye`. +You should not change the existing `div` element with the class `.cat-right-eye`. + +```js +assert(document.querySelectorAll('div.cat-right-eye').length === 1); +``` + +You should have one `div` element inside your `.cat-left-eye` element. ```js assert(document.querySelectorAll('.cat-left-eye div').length === 1); ``` -O elemento `div` deve ter a classe `cat-left-inner-eye`. +You should have one `div` element inside your `.cat-right-eye` element. + +```js +assert(document.querySelectorAll('.cat-right-eye div').length === 1); +``` + +The new `div` element inside `.cat-left-eye` should have the class `cat-left-inner-eye`. ```js assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('cat-left-inner-eye')); ``` +The new `div` element inside `.cat-right-eye` should have the class `cat-right-inner-eye`. + +```js +assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); +``` + # --seed-- ## --seed-contents-- @@ -57,9 +75,11 @@ assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index 47a700bfccb..00000000000 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: Passo 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -Dentro do elemento `.cat-right-eye`, crie outro elemento `div` com a classe `cat-right-inner-eye`. - -# --hints-- - -Você não deve alterar o elemento `div` existente com a classe `cat-left-eye`. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -Você deve ter um elemento `div` dentro do elemento `.cat-right-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -O elemento `div` deve ter a classe `cat-right-inner-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index ead26f2df38..514c88df5bb 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: Passo 43 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index 31fa85fa72a..595bf6cbf8c 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: Passo 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Mova o olho esquerdo para o lugar com uma `position` `absolute`, um `top` de `54px` e um `left` de `39px`. +Mova o olho esquerdo para a posição certa com a propriedade `position` definida como `absolute`, `top` como `54px` e `left` como `39px`. # --hints-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index d3aa9fc6b93..94c6e8a7074 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: Passo 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index c2d3873b4d1..767b1914c3e 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: Passo 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index ee3e336bcae..ff9f7811200 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: Passo 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index 8bc6b1e4bbb..7a6c7ad88a4 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: Passo 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index d85d0bc7763..9d6c7f4e586 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: Passo 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index 10331d43673..de9ba96fc52 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: Passo 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index f35aaf5b3b1..d77a17b66f5 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: Passo 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index 9108ff51659..92671144d12 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -1,8 +1,8 @@ --- id: 646dec359bef3b7811fba5a6 -title: Passo 52 +title: Step 50 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index 1afce506848..6c161abf7b1 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: Passo 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index 4efa2d30e00..cd675bce737 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: Passo 54 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index 7301793b0d0..da5b59a8030 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: Passo 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index ab9a2765364..832dc0b7d38 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: Passo 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index 67c6b65f1d7..15c37d0d66c 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: Passo 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -19,7 +19,7 @@ Você deve criar um elemento `div`. assert(document.querySelectorAll('div').length === 13) ``` -O elemento `div` deve ter a classe `cat-mouth` +O elemento `div` deve ter a classe `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index a0cea2a39e9..893583f5d8a 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: Passo 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index 6095b7093e7..634087fb55d 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: Passo 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ Usando um seletor de classe, dê ao elemento `.cat-mouth-line-left` uma `positio # --hints-- -Você deve ter um seletor `cat-mouth-line-left`. +Você deve ter um seletor `.cat-mouth-line-left`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index ddcd3721909..d00c33976c1 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: Passo 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index 5741766db7d..df4fa83dabc 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: Passo 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index 2f210503d9a..7f1da498338 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: Passo 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ Gire a linha da direita da boca em `165` graus. # --hints-- -O seletor `.cat-mouth-line-left` deve ter a propriedade `transform` definida como `rotate(165deg)`. +O seletor `.cat-mouth-line-right` deve ter a propriedade `transform` definida como `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index 58be8606709..dac2ab3a62f 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: Passo 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index fc48fa46e11..936e2418aab 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -1,8 +1,8 @@ --- id: 646f0ef13604420a8744f7d4 -title: Passo 66 +title: Step 64 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index 5e7e5c77e35..d00cafa2b34 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: Passo 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index 51f8445dddf..18d4314b48a 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: Passo 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index a8470d7f6b5..fb5f817efd4 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: Passo 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index dcb08aa0663..888f0bbda5f 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: Passo 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index 1f7a05a6dcb..24adb40176d 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: Passo 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index bb6b13121b0..fc9d8af7350 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: Passo 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index 292db43a99b..a3f50f62bec 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: Passo 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index d25f0249fd6..7e7c421ebaf 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: Passo 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index a74d4b4cacd..eeb56b6313a 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: Passo 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index 8e27f32a7b4..09db23764d6 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: Passo 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index 5bd2e56c9ff..7ccb946c91c 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: Passo 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index 2b3d7a1ac51..5ed23355252 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: Passo 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Use um seletor de classe que tenha como objetivo o elemento `cat-whisker-right-middle` e coloque-o no lugar com uma `position` `absolute`, um `top` de `127px` e um `left` de `109px`. +Use um seletor de classe que tenha como objetivo o elemento `.cat-whisker-right-middle` e coloque-o no lugar com uma `position` `absolute`, um `top` de `127px` e um `left` de `109px`. # --hints-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index b2bbff8f354..337d91681a3 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: Passo 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index 9bcd7b9625d..e7e8c91cfe0 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: Passo 81 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index 231879a2db1..c64b733d293 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: Passo 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 13d41e260a8..6ab1e69fcb6 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: Passo 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index 94f5c901bd7..fc438e83003 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: Passo 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index c979b7b707f..07ef4829ebd 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: Passo 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index f47ab323b5e..d0152d9bf1a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md index daff193efd0..116c2fac9f7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md @@ -1,6 +1,6 @@ --- id: 635090f47eb6d9563a6fed05 -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index 27c976dc0c2..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: Passo 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Por fim, retorne o valor de `median`. - -Como na função `getMean`, você pode condensar esse código em uma linha e reduzir o número de variáveis que você instancia. No entanto, é importante lembrar-se de que o código mais curto nem sempre é o melhor. Neste caso, reduzir as linhas de código tornaria o código mais difícil de ler e entender, afetando a futura manutenção. - -# --hints-- - -A função `getMedian` deve retornar o valor de `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md index 12dc8f797c5..67c2dfda844 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md @@ -1,6 +1,6 @@ --- id: 6352e79d15aae30fac58f48e -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e80e024e89111600edfb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e80e024e89111600edfb.md index dbb08032d82..a0ce540a0a8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e80e024e89111600edfb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e80e024e89111600edfb.md @@ -1,6 +1,6 @@ --- id: 6352e80e024e89111600edfb -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md index 75265d11c07..09685044fc0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md @@ -1,6 +1,6 @@ --- id: 6352e93db104661305c5f658 -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md index 44be8b92954..7b48f2dbea3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md @@ -1,6 +1,6 @@ --- id: 6352e96d2604f813c656750b -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md index f4742c1d4bd..28c30523af6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md @@ -1,6 +1,6 @@ --- id: 6352ea3a5b79e614ee2282fd -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md index 67e9ff1e204..c4123badfb6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md @@ -1,6 +1,6 @@ --- id: 6352ebd3ab962c168a122e85 -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md index 5e7c3f9e7ac..e9aa16befb4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md @@ -1,6 +1,6 @@ --- id: 6352ec8b9c70fd17b8c7ba3f -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md index 4f57b2f4640..0216cab96c5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md @@ -1,6 +1,6 @@ --- id: 6352ecef9f045519063da9b3 -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md index aae17392616..9019898ac07 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md @@ -1,6 +1,6 @@ --- id: 6352edee8a4de01ad693f0e4 -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md index b1fd0d6d3ad..1b430c2d488 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md @@ -1,6 +1,6 @@ --- id: 6352ee566a59d31d24bde74b -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md index c9187062be4..d29ec9880e0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md @@ -1,6 +1,6 @@ --- id: 6352f09b1e53a420e7873344 -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md index bd88e21f7b0..9965e03c057 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md @@ -1,6 +1,6 @@ --- id: 6352f179bdca23221298a5ba -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md index a051e4e4bba..2042bdd35ad 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md @@ -1,6 +1,6 @@ --- id: 6352f2526dccb523150b64fb -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md index 546e74cc4e0..f1abead885a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md @@ -1,6 +1,6 @@ --- id: 6352f2a24eb71b24284ca2b6 -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md index ffb6f766713..141000e3baa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md @@ -1,6 +1,6 @@ --- id: 6352faf71a9db52631864634 -title: Step 46 +title: Passo 46 challengeType: 0 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md index 3f6395a3c90..bb3bea26ff9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md @@ -1,6 +1,6 @@ --- id: 6352fbb93a91a8272f838d42 -title: Step 47 +title: Passo 47 challengeType: 0 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md index f65c45ccc43..c7101b2e7c8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md @@ -1,6 +1,6 @@ --- id: 6352fcb156834128001ea945 -title: Step 48 +title: Passo 48 challengeType: 0 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md index c270173b6a8..fa4e67307fb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md @@ -1,6 +1,6 @@ --- id: 6352fce75b2d3b2924930f1e -title: Step 49 +title: Passo 49 challengeType: 0 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md index 2acf0b6a18b..753a29086eb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md @@ -1,6 +1,6 @@ --- id: 6352fe473d53592a40ae403b -title: Step 50 +title: Passo 50 challengeType: 0 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md index 5ba4dfd67ef..f893a100b9b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md @@ -1,6 +1,6 @@ --- id: 6352fed209792d2b89e92ea1 -title: Step 51 +title: Passo 51 challengeType: 0 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md index 81dbb0e7856..76599c29304 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md @@ -1,6 +1,6 @@ --- id: 6352ff27e0e51b2c7dce0010 -title: Step 52 +title: Passo 52 challengeType: 0 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md index 1d4790c51a6..09960cb3216 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md @@ -1,6 +1,6 @@ --- id: 6352ffe4cfafa72d595a0007 -title: Step 53 +title: Passo 53 challengeType: 0 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md index 0fd68df8e3a..a89b19f10f8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md @@ -1,6 +1,6 @@ --- id: 6353004b235d7a2e0b913f2b -title: Step 54 +title: Passo 54 challengeType: 0 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md index f421784a897..d0d305e2a97 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md @@ -1,6 +1,6 @@ --- id: 6353024f5eab012fa2f57eec -title: Step 55 +title: Passo 55 challengeType: 0 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md index aa46295f0d5..9b04590d568 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md @@ -1,6 +1,6 @@ --- id: 6353028147d3c7309017216a -title: Step 56 +title: Passo 56 challengeType: 0 dashedName: step-56 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md index 62a3eeb798c..676837f88aa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md @@ -1,6 +1,6 @@ --- id: 635302be760d6031d11a06cd -title: Step 57 +title: Passo 57 challengeType: 0 dashedName: step-57 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md index 97853e8cacb..0764ec9ba97 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md @@ -1,6 +1,6 @@ --- id: 6374249d3fbf2a5b079ba036 -title: Step 58 +title: Passo 58 challengeType: 0 dashedName: step-58 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65aac0678d51b3f1a0cb8061.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65aac0678d51b3f1a0cb8061.md index 7013a2397ee..15c1e3b1075 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65aac0678d51b3f1a0cb8061.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65aac0678d51b3f1a0cb8061.md @@ -1,6 +1,6 @@ --- id: 65aac0678d51b3f1a0cb8061 -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65c4dc57418fd6bfc710d61d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65c4dc57418fd6bfc710d61d.md index f88176d7da5..bc361ec3d0b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65c4dc57418fd6bfc710d61d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65c4dc57418fd6bfc710d61d.md @@ -1,6 +1,6 @@ --- id: 65c4dc57418fd6bfc710d61d -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65ca2d0625aa3a3201067f70.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65ca2d0625aa3a3201067f70.md index 2185d7c1612..207b20ece20 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65ca2d0625aa3a3201067f70.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65ca2d0625aa3a3201067f70.md @@ -1,6 +1,6 @@ --- id: 65ca2d0625aa3a3201067f70 -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65e62efde0592ec4b4bb6a69.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65e62efde0592ec4b4bb6a69.md index c6d4123bddd..679b969115d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65e62efde0592ec4b4bb6a69.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65e62efde0592ec4b4bb6a69.md @@ -1,6 +1,6 @@ --- id: 65e62efde0592ec4b4bb6a69 -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65f83a7ca7047318e3ccff7c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65f83a7ca7047318e3ccff7c.md index eb7f058bfb2..bbe891bde8c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65f83a7ca7047318e3ccff7c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/65f83a7ca7047318e3ccff7c.md @@ -1,6 +1,6 @@ --- id: 65f83a7ca7047318e3ccff7c -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/661890c4abae9f2a0eddad6b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/661890c4abae9f2a0eddad6b.md index 7e010e7996a..2720e372d5d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/661890c4abae9f2a0eddad6b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/661890c4abae9f2a0eddad6b.md @@ -1,6 +1,6 @@ --- id: 661890c4abae9f2a0eddad6b -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/661899113600ef307d8a7487.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/661899113600ef307d8a7487.md index 37bb1c3862c..65925a3c665 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/661899113600ef307d8a7487.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/661899113600ef307d8a7487.md @@ -1,6 +1,6 @@ --- id: 661899113600ef307d8a7487 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6618a3264f955339063d3328.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6618a3264f955339063d3328.md index 0821457aeb3..aecd08eaed3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6618a3264f955339063d3328.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6618a3264f955339063d3328.md @@ -1,6 +1,6 @@ --- id: 6618a3264f955339063d3328 -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6618abf6368d073f0f659780.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6618abf6368d073f0f659780.md index 98a42fc4c46..3ea37fb62fe 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6618abf6368d073f0f659780.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6618abf6368d073f0f659780.md @@ -1,6 +1,6 @@ --- id: 6618abf6368d073f0f659780 -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index 5a28b3c2db1..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: Passo 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index 3be4b5227fa..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: Passo 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 1e1d1e3e6ba..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: Passo 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c98ac169e501eba36d04.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c98ac169e501eba36d04.md index 8b7c9f7aea8..99da996ef2b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c98ac169e501eba36d04.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c98ac169e501eba36d04.md @@ -1,6 +1,6 @@ --- id: 6443c98ac169e501eba36d04 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index 939360dfe23..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: Passo 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index a71d2854c0b..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: Passo 28 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index a0dc4995d19..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: Passo 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index 3ba8318ab06..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: Passo 30 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index fbceec0ff83..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: Passo 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index c76299aa495..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: Passo 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -You should return `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444062a33ab4c03d0c2e9f5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444062a33ab4c03d0c2e9f5.md index 2a0d609fdf2..12fbfe613f3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444062a33ab4c03d0c2e9f5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444062a33ab4c03d0c2e9f5.md @@ -1,6 +1,6 @@ --- id: 6444062a33ab4c03d0c2e9f5 -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64440a50d076c204051f2cc0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64440a50d076c204051f2cc0.md index 0dd6b849e77..49def63dddc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64440a50d076c204051f2cc0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64440a50d076c204051f2cc0.md @@ -1,6 +1,6 @@ --- id: 64440a50d076c204051f2cc0 -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index f418a1c144a..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: Passo 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -You should have a constant called `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index ca561818a36..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: Passo 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index 7c4ec47ead2..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: Passo 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f324c287170220eee013.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f324c287170220eee013.md index 0e8bbca1405..d7788524f1f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f324c287170220eee013.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f324c287170220eee013.md @@ -1,6 +1,6 @@ --- id: 6444f324c287170220eee013 -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6446d8f9fce0fa0172473964.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6446d8f9fce0fa0172473964.md index 836371d4103..a4185f11d19 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6446d8f9fce0fa0172473964.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6446d8f9fce0fa0172473964.md @@ -1,6 +1,6 @@ --- id: 6446d8f9fce0fa0172473964 -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b6d20eabd7e0149383254.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b6d20eabd7e0149383254.md index 9b4db4004fc..eb41c43d7df 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b6d20eabd7e0149383254.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b6d20eabd7e0149383254.md @@ -1,6 +1,6 @@ --- id: 644b6d20eabd7e0149383254 -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b736c83c5250181633899.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b736c83c5250181633899.md index 272b9e05512..850cbdacddf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b736c83c5250181633899.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b736c83c5250181633899.md @@ -1,6 +1,6 @@ --- id: 644b736c83c5250181633899 -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b97360868a301bf9ba463.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b97360868a301bf9ba463.md index 3fc4724e116..e83faef87a2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b97360868a301bf9ba463.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644b97360868a301bf9ba463.md @@ -1,6 +1,6 @@ --- id: 644b97360868a301bf9ba463 -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644ba3c43bb57f020ca57834.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644ba3c43bb57f020ca57834.md index 872c51dfb5a..724d83cfebb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644ba3c43bb57f020ca57834.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644ba3c43bb57f020ca57834.md @@ -1,6 +1,6 @@ --- id: 644ba3c43bb57f020ca57834 -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644baae059c58402a31e815a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644baae059c58402a31e815a.md index 8c273124328..c0a2ee37ce6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644baae059c58402a31e815a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644baae059c58402a31e815a.md @@ -1,6 +1,6 @@ --- id: 644baae059c58402a31e815a -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f360e888420013dbe705f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f360e888420013dbe705f.md index 0a7286d2e7b..7598497220b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f360e888420013dbe705f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f360e888420013dbe705f.md @@ -1,6 +1,6 @@ --- id: 644f360e888420013dbe705f -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f4bcf1c2afd0211cd945e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f4bcf1c2afd0211cd945e.md index 131f97b66ea..42f06d20b1e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f4bcf1c2afd0211cd945e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f4bcf1c2afd0211cd945e.md @@ -1,6 +1,6 @@ --- id: 644f4bcf1c2afd0211cd945e -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f848af645ce012bd1a2bc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f848af645ce012bd1a2bc.md index 062d87fd4ef..c4c895ff985 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f848af645ce012bd1a2bc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644f848af645ce012bd1a2bc.md @@ -1,6 +1,6 @@ --- id: 644f848af645ce012bd1a2bc -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fa585a5f9970173ca3cff.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fa585a5f9970173ca3cff.md index 0981c302590..71251d4f9d8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fa585a5f9970173ca3cff.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fa585a5f9970173ca3cff.md @@ -1,6 +1,6 @@ --- id: 644fa585a5f9970173ca3cff -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fb1d7f0257702a0c935cf.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fb1d7f0257702a0c935cf.md index 11695823736..ae4a59ddbea 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fb1d7f0257702a0c935cf.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fb1d7f0257702a0c935cf.md @@ -1,6 +1,6 @@ --- id: 644fb1d7f0257702a0c935cf -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fba64caf60303c9540d14.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fba64caf60303c9540d14.md index 386f14e4300..8d3f08ba5a3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fba64caf60303c9540d14.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/644fba64caf60303c9540d14.md @@ -1,6 +1,6 @@ --- id: 644fba64caf60303c9540d14 -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645763874fd6d901c273db29.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645763874fd6d901c273db29.md index 596401a515e..8c1c6700368 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645763874fd6d901c273db29.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645763874fd6d901c273db29.md @@ -1,6 +1,6 @@ --- id: 645763874fd6d901c273db29 -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f06144bc0dc0143a5a3a2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f06144bc0dc0143a5a3a2.md index 7e0f6afa5a9..8ffe2b4f0ce 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f06144bc0dc0143a5a3a2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f06144bc0dc0143a5a3a2.md @@ -1,6 +1,6 @@ --- id: 645f06144bc0dc0143a5a3a2 -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f1cffc7f95e01db009f32.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f1cffc7f95e01db009f32.md index 5ebee5f6a13..c985f5deade 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f1cffc7f95e01db009f32.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f1cffc7f95e01db009f32.md @@ -1,6 +1,6 @@ --- id: 645f1cffc7f95e01db009f32 -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f34e7925b68021ce0bcaa.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f34e7925b68021ce0bcaa.md index 5e933dd6ec3..e2722b16de6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f34e7925b68021ce0bcaa.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f34e7925b68021ce0bcaa.md @@ -1,6 +1,6 @@ --- id: 645f34e7925b68021ce0bcaa -title: Step 46 +title: Passo 46 challengeType: 0 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f7231271ab1012bc659b8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f7231271ab1012bc659b8.md index bdff26ea234..c6247e19239 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f7231271ab1012bc659b8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f7231271ab1012bc659b8.md @@ -1,6 +1,6 @@ --- id: 645f7231271ab1012bc659b8 -title: Step 47 +title: Passo 47 challengeType: 0 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f764c37de33015ded1273.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f764c37de33015ded1273.md index 2075856e463..a07567d72ec 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f764c37de33015ded1273.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f764c37de33015ded1273.md @@ -1,6 +1,6 @@ --- id: 645f764c37de33015ded1273 -title: Step 48 +title: Passo 48 challengeType: 0 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f7879ebbdb201892e55e1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f7879ebbdb201892e55e1.md index 39ab543a735..68067bb6145 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f7879ebbdb201892e55e1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f7879ebbdb201892e55e1.md @@ -1,6 +1,6 @@ --- id: 645f7879ebbdb201892e55e1 -title: Step 49 +title: Passo 49 challengeType: 0 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f8615fa144d01c476b22c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f8615fa144d01c476b22c.md index 4df502e8653..5293a380a02 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f8615fa144d01c476b22c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f8615fa144d01c476b22c.md @@ -1,6 +1,6 @@ --- id: 645f8615fa144d01c476b22c -title: Step 50 +title: Passo 50 challengeType: 0 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f958584305d02bf48fe5b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f958584305d02bf48fe5b.md index 077e259ab39..a3a152bfa7b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f958584305d02bf48fe5b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/645f958584305d02bf48fe5b.md @@ -1,6 +1,6 @@ --- id: 645f958584305d02bf48fe5b -title: Step 51 +title: Passo 51 challengeType: 0 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/646474a88d0d4a016f895ba8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/646474a88d0d4a016f895ba8.md index 853aaf943db..c980bf4d86b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/646474a88d0d4a016f895ba8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/646474a88d0d4a016f895ba8.md @@ -1,6 +1,6 @@ --- id: 646474a88d0d4a016f895ba8 -title: Step 52 +title: Passo 52 challengeType: 0 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64648c3254e52901e36e7703.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64648c3254e52901e36e7703.md index 67618fe3277..da1b923d46d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64648c3254e52901e36e7703.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64648c3254e52901e36e7703.md @@ -1,6 +1,6 @@ --- id: 64648c3254e52901e36e7703 -title: Step 53 +title: Passo 53 challengeType: 0 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/646494e11d0cab03caee204c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/646494e11d0cab03caee204c.md index 65f4243e8dd..a0e4ce6db4d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/646494e11d0cab03caee204c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/646494e11d0cab03caee204c.md @@ -1,6 +1,6 @@ --- id: 646494e11d0cab03caee204c -title: Step 54 +title: Passo 54 challengeType: 0 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64649b108df035051cb2ba2d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64649b108df035051cb2ba2d.md index c14f55e1d30..3ce991b9e71 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64649b108df035051cb2ba2d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/64649b108df035051cb2ba2d.md @@ -1,6 +1,6 @@ --- id: 64649b108df035051cb2ba2d -title: Step 55 +title: Passo 55 challengeType: 0 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6576076879130f6cf7426e82.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6576076879130f6cf7426e82.md index 4e215f357c9..1f18ce3da80 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6576076879130f6cf7426e82.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6576076879130f6cf7426e82.md @@ -1,6 +1,6 @@ --- id: 6576076879130f6cf7426e82 -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760954561c726e832a0cc8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760954561c726e832a0cc8.md index c1b58274d42..c5e428ae42c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760954561c726e832a0cc8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760954561c726e832a0cc8.md @@ -1,6 +1,6 @@ --- id: 65760954561c726e832a0cc8 -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760ce115eb06716baeb361.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760ce115eb06716baeb361.md index 96230ca9d57..d34696f2513 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760ce115eb06716baeb361.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760ce115eb06716baeb361.md @@ -1,6 +1,6 @@ --- id: 65760ce115eb06716baeb361 -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760de70283687288fe70cf.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760de70283687288fe70cf.md index e66b5b6c5a2..30685fe3859 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760de70283687288fe70cf.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/65760de70283687288fe70cf.md @@ -1,6 +1,6 @@ --- id: 65760de70283687288fe70cf -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index b495e13e55f..457bf560d4c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,6 +1,6 @@ --- id: 6407c303b4272606c019f338 -title: Step 11 +title: Passo 10 challengeType: 0 dashedName: step-11 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 1488dd2e40a..37e2b2ec17f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,6 +1,6 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Step 12 +title: Etapa 12 challengeType: 0 dashedName: step-12 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index 3acffc01de4..52674cd2b58 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,6 +1,6 @@ --- id: 6407c627ddc93708c8dee796 -title: Step 13 +title: Etapa 13 challengeType: 0 dashedName: step-13 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index 6679dd61f83..9f2231341b5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,6 +1,6 @@ --- id: 6407c6a2c2159309994779a5 -title: Step 14 +title: Passo 14 challengeType: 0 dashedName: step-14 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index 4eec5a13419..9c20872d523 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,6 +1,6 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Step 15 +title: Passo 15 challengeType: 0 dashedName: step-15 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 793831ce0cf..b0a26740f65 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,6 +1,6 @@ --- id: 6407c722498bc80b76d29073 -title: Step 16 +title: Passo 16 challengeType: 0 dashedName: step-16 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index 4b32f054269..ebc6fb6e978 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,6 +1,6 @@ --- id: 6410da6df463a606dfade96f -title: Step 17 +title: Passo 17 challengeType: 0 dashedName: step-17 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index ea73675e68c..8da1d3cae49 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,6 +1,6 @@ --- id: 6410dfb965c72108196ef24a -title: Step 18 +title: Passo 18 challengeType: 0 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index afbc16a4e49..40e68bf1b93 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,6 +1,6 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Step 19 +title: Etapa 19 challengeType: 0 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index 03c9dd03f6b..c1948743236 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,6 +1,6 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Step 20 +title: 20° passo challengeType: 0 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index 8d681ae410b..9e05fd896d9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,6 +1,6 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Step 21 +title: Passo 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index cb1ca3eeb21..6e43bc16c8f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,6 +1,6 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index 44624b40551..f7774d2fed1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,6 +1,6 @@ --- id: 6410efff0ae97c0f06856511 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index 569c18e36a8..d6405f9651a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,6 +1,6 @@ --- id: 6410f149110ec60fd40fcfe1 -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index 05e5d8daaaf..040b2932a7b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,6 +1,6 @@ --- id: 6410f97a721cd1144804b7a8 -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index 1b7ca3f561c..9cf46858659 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,6 +1,6 @@ --- id: 6410f9a443d57414ee50fada -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index eef63fd0bf4..b043423114b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,6 +1,6 @@ --- id: 6410fb3b68429716a810ea4b -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index 5ab9ea619ce..f7190aec931 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,6 +1,6 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index a07483eff0e..2417f7f90cf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,6 +1,6 @@ --- id: 6411024727181d190ef03166 -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index 5119676d800..9efbc00a94d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,6 +1,6 @@ --- id: 64110377201e7b1a0de0d558 -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index a5207b5b114..ea5d012bed3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,6 +1,6 @@ --- id: 64110727cefd3d1d9bdb0128 -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index ff563398231..62e0cb16f4e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,6 +1,6 @@ --- id: 6411083020a3101e9514a0f5 -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 8b1752dc5df..ec6be038c76 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,6 +1,6 @@ --- id: 64110998bc00321fd8052ab5 -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index c05a6ab1432..bd73f1e73a5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,6 +1,6 @@ --- id: 64110a03f6a450209b01f45c -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index 96f5a59861b..a1f775aa4c2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,6 +1,6 @@ --- id: 64110b1849454521871243ca -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 6b372091a1c..5a76c4ab5e1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,6 +1,6 @@ --- id: 6411108bc8b9c324f66aab4c -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index ac68dd89006..63a3b89842b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,6 +1,6 @@ --- id: 641110e4fb696b259dbf0bcf -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index 049f16adf91..55534040d24 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,6 +1,6 @@ --- id: 6411135e9ee2fa26c882eb02 -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index fe03131f2ba..e46c99febb0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,6 +1,6 @@ --- id: 64112c9cf53d632910ea2f9b -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 31e9abb3191..0b38dbd6b05 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,6 +1,6 @@ --- id: 64112cea9e6ac22a314628b0 -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index 4e0afefda57..f07a96fe4e9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,6 +1,6 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index af9867d0928..5298b254810 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,6 +1,6 @@ --- id: 64112fa63a0f812c66499a54 -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index da8b77b3d1e..0f94939d61f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,6 +1,6 @@ --- id: 641130423e5f512d8972dae1 -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 0fd6eff4061..e39bc2a62f5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,6 +1,6 @@ --- id: 64113124efd2852edafaf25f -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 3f9eb908908..744d716bdcb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,6 +1,6 @@ --- id: 64113249bab9952fb2ce4469 -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md index 7f0b0bf8cd7..dada590942d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -1,6 +1,6 @@ --- id: 6621c5f02a5c272761db8661 -title: Step 8 +title: 8° passo challengeType: 0 dashedName: step-8 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md index d785cdc7241..57b07bf058e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -1,6 +1,6 @@ --- id: 6621d0dd6798b121bd2ed823 -title: Step 9 +title: 9° passo challengeType: 0 dashedName: step-9 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md index 4ddc815fa4d..447011ea0aa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -1,6 +1,6 @@ --- id: 662236690376072dc79d9c27 -title: Step 10 +title: Passo 10 challengeType: 0 dashedName: step-10 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..1dd73ecc04b --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index 526a38c2df3..820d638b580 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -1,6 +1,6 @@ --- id: 62a115879a6d51422652cbfc -title: Step 11 +title: Passo 10 challengeType: 0 dashedName: step-11 --- @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index 20e291eb409..96fd99dc1b1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -1,6 +1,6 @@ --- id: 62a1166ed9a56d439c0770e7 -title: Step 12 +title: Etapa 12 challengeType: 0 dashedName: step-12 --- @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index 183c79a57f4..269de464561 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -1,6 +1,6 @@ --- id: 62a23c1d505bfa13747c8a9b -title: Step 13 +title: Etapa 13 challengeType: 0 dashedName: step-13 --- @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index dbb2e26fc0d..dca1393d61f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -1,6 +1,6 @@ --- id: 62a23cb9bc467a147516b500 -title: Step 14 +title: Passo 14 challengeType: 0 dashedName: step-14 --- @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index 263d35e247f..aa719f0c538 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -1,6 +1,6 @@ --- id: 62a23d1c5f1c93161f3582ae -title: Step 19 +title: Etapa 19 challengeType: 0 dashedName: step-19 --- @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md index 6d4a4d93b29..129c25e4c54 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md @@ -1,6 +1,6 @@ --- id: 62a2401b9842721796b72850 -title: Step 20 +title: 20° passo challengeType: 0 dashedName: step-20 --- @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index 25c02d7b20a..92a08d60126 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -1,6 +1,6 @@ --- id: 62a24068d60b671847d1d4e2 -title: Step 21 +title: Passo 21 challengeType: 0 dashedName: step-21 --- @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index 42373187210..05940b89f71 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -1,6 +1,6 @@ --- id: 62a2409897ec621942234cf6 -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index 04ccb6ad413..90a66633e98 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -1,6 +1,6 @@ --- id: 62a240c67f3dbb1a1e6d95ee -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index 19697f7dca9..bfcc843ae95 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -1,6 +1,6 @@ --- id: 62a24128d5e8af1b47ad1aab -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index d6c5fdc907e..21549e9f580 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -1,6 +1,6 @@ --- id: 62a24190868ca51c0b6e83c7 -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index d4ef47daf94..80a0ed0c09b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -1,6 +1,6 @@ --- id: 62a241df03c1f61ce936f5d9 -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index 5871e00acfa..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: 7° passo -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -É possível atribuir um valor às variáveis. Quando você faz isso enquanto declara, isso se chama inicialização. Por exemplo: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Inicialize a variável `xp` para que tenha um valor de `0`, um número. - -# --hints-- - -`xp` deve ter um valor de `0`. - -```js -assert.equal(xp, 0); -``` - -Você deve inicializar a variável `xp` como `0`. Não se esqueça do ponto e vírgula no final da linha. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a75d8466a12e009eff76.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a75d8466a12e009eff76.md index ede34fdd6e2..3ccaf4b9467 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a75d8466a12e009eff76.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a75d8466a12e009eff76.md @@ -1,6 +1,6 @@ --- id: 62a3a75d8466a12e009eff76 -title: Step 7 +title: 7° passo challengeType: 0 dashedName: step-7 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index 42573892043..4de1251198b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -1,38 +1,38 @@ --- id: 62a3a7e4f1060e2fc5ffb34b -title: Step 8 +title: 8° passo challengeType: 0 dashedName: step-8 --- # --description-- -Crie outra variável chamada `currentWeapon` e defina-a como `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -Você deve usar `let` para declarar uma variável chamada `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` Você deve usar CamelCase para nomear a variável. ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -A variável `currentWeapon` deve ser definido como `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` Você deve inicializar a variável como `0`. ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index 2b2b3ef70ed..42894034a00 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -1,6 +1,6 @@ --- id: 62a3b3eab50e193608c19fc6 -title: Step 9 +title: 9° passo challengeType: 0 dashedName: step-9 --- @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index b8b3e21a803..56a9555f404 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -1,6 +1,6 @@ --- id: 62a3b41c9494f937560640ab -title: Step 10 +title: Passo 10 challengeType: 0 dashedName: step-10 --- @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index fc960ee1bcd..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: Etapa 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Todas as variáveis que você atribuiu têm valores que são números. O JavaScript tem vários tipos de dados diferentes. A próxima que você vai usar é a string. As strings são usadas para armazenar coisas como palavras ou texto. Strings são envolvidas por aspas duplas, aspas simples ou acentos graves/crases (em inglês, backticks). Aqui está um exemplo de declaração de uma variável com uma string: - -```js -let developer = "Naomi"; -``` - -Atribua a variável `inventory` para que tenha o valor de `stick`. - -# --hints-- - -Você deve definir `inventory` com a string `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -Você deve inicializar a variável `inventory` com a string `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index 79113187210..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: Etapa 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -O inventário do jogador poderá guardar vários itens. Você precisará usar um tipo de dados que possa fazer isso. Um array pode ser usado para manter vários valores. Por exemplo: - -```js -let order = ["first", "second", "third"]; -``` - -Este é um array que tem três valores. Observe como os valores são separados por vírgulas. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -A variável `inventory` deve ser um array. - -```js -assert.isArray(inventory); -``` - -A variável `inventory` deve ter três valores. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -A variável `inventory` deve ter os valores na ordem correta. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index 3313490a186..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: Passo 14 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -A variável `inventory` ainda deve ser um array. - -```js -assert.isArray(inventory); -``` - -A variável `inventory` deve ter somente um valor. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index 136790463d3..5c6c4a51a73 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -1,6 +1,6 @@ --- id: 62a3b79d520a7f3d0e25afd6 -title: Step 15 +title: Passo 15 challengeType: 0 dashedName: step-15 --- @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index 011a24f473c..06bb446638a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -1,6 +1,6 @@ --- id: 62a3bb9aeefe4b3fc43c6d7b -title: Step 17 +title: Passo 17 challengeType: 0 dashedName: step-17 --- @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index b9718af400c..0fefd8dcd63 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -1,6 +1,6 @@ --- id: 62a3bec30ea7f941412512dc -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index aac6d458b26..8e1260926cc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -1,6 +1,6 @@ --- id: 62a3c0ab883fd9435cd5c518 -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index c956830725f..366bab0b341 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -1,6 +1,6 @@ --- id: 62a3c2fccf186146b59c6e96 -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 635acd904bc..248d2a56e02 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -1,6 +1,6 @@ --- id: 62a3c4a0e52767482c5202d4 -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index ad6fbf37d52..86fb5bf657b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -1,6 +1,6 @@ --- id: 62a3c668afc43b4a134cca81 -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 0e8e7aaa9a7..48d8d66731c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -1,6 +1,6 @@ --- id: 62a3c8bf3980c14c438d2aed -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 88a82e5b84d..ca0aaad9fc4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -1,6 +1,6 @@ --- id: 62a3c91a2bab1b4d6fabb726 -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 5f6c4e09c6d..fa4fa83cfec 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -1,6 +1,6 @@ --- id: 62a3cdb11478a34ff4a6470d -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index e1f9e48028f..7e33dd3168b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -1,6 +1,6 @@ --- id: 62a3cfc8328d3351b95d4f61 -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index fc1eb9f2980..52719f5a22e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -1,6 +1,6 @@ --- id: 62a7beb1ad61211ac153707f -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 63fcef20478..b61531bc021 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -1,6 +1,6 @@ --- id: 62a7bf06d2ad9d1c5024e833 -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index 653ece15693..b843f1f272b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -1,6 +1,6 @@ --- id: 62a7bfabe119461eb13ccbd6 -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index 1c05d0da512..3afcf0d2b20 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -1,6 +1,6 @@ --- id: 62a7bfd9179b7f1f6a15fb1e -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index ec996b95d24..49cea954b48 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -1,6 +1,6 @@ --- id: 62a7c011eef9fb2084b966db -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 65e9a91b0da..bc23710b2d8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -1,6 +1,6 @@ --- id: 62a7c071219da921758a35bb -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index 0fefd3b08ba..8be14747e44 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -1,6 +1,6 @@ --- id: 62a7c23e6b511f22ed71197a -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index 47d85167873..afb1a2b31f1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -1,6 +1,6 @@ --- id: 62a7cc99577fbf25ee7a7d76 -title: Step 46 +title: Passo 46 challengeType: 0 dashedName: step-46 --- @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 9bb985b3f8f..78245e9d66b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -1,6 +1,6 @@ --- id: 62a8a929e4260d08093756d2 -title: Step 47 +title: Passo 47 challengeType: 0 dashedName: step-47 --- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 60693c93078..82600732d06 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -1,6 +1,6 @@ --- id: 62a8a9d876b2580943ba9351 -title: Step 54 +title: Passo 54 challengeType: 0 dashedName: step-54 --- @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index 06dd75857c5..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: Passo 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -As propriedades de objeto são escritas como pares de `key: value`, onde `key` é o nome da propriedade (ou a chave) e `value` é o valor que a propriedade possui. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"town square"`. - -# --hints-- - -O primeiro valor de `locations` deve ser um objeto. - -```js -assert.isObject(locations[0]); -``` - -O primeiro valor de `locations` deve ter uma propriedade `name`. - -```js -assert.isDefined(locations[0].name); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index 8e834efc234..06b39a00e97 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -1,6 +1,6 @@ --- id: 62a8ab0e27cbaf0b54ba8a42 -title: Step 55 +title: Passo 55 challengeType: 0 dashedName: step-55 --- @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index 560251cf19f..0be5d5ce84b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -1,6 +1,6 @@ --- id: 62a8ac194679e60cb561b0a8 -title: Step 56 +title: Passo 56 challengeType: 0 dashedName: step-56 --- @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 234fa1058ae..50d4ace1d9e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -1,6 +1,6 @@ --- id: 62a8ad8e01d7cb0deae5ec66 -title: Step 57 +title: Passo 57 challengeType: 0 dashedName: step-57 --- @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index c17b2aa17f6..70058fe9cee 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -1,6 +1,6 @@ --- id: 62a8ade9b2f5b30ef0b606c2 -title: Step 58 +title: Passo 58 challengeType: 0 dashedName: step-58 --- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index 2f5f89d5506..c761af4b26f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -1,6 +1,6 @@ --- id: 62a8ae85fcaedc0fddc7ca4f -title: Step 59 +title: Passo 59 challengeType: 0 dashedName: step-59 --- @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 622779abb1b..cddfaa2ba9b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -1,6 +1,6 @@ --- id: 62a8b0b5053f16111b0b6b5f -title: Step 60 +title: Passo 60 challengeType: 0 dashedName: step-60 --- @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 7981099b275..d30e7abc5ac 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -1,6 +1,6 @@ --- id: 62a8b1762b7775124622e1a3 -title: Step 61 +title: Passo 61 challengeType: 0 dashedName: step-61 --- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index 5ea72d0a307..3711b73b0e1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -1,6 +1,6 @@ --- id: 62a8b3cc436db8139cc5fc09 -title: Step 62 +title: Passo 62 challengeType: 0 dashedName: step-62 --- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index a8a5b16bc5b..a5b8c3d7875 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -1,6 +1,6 @@ --- id: 62a8b6536156c51500739b41 -title: Step 63 +title: Passo 63 challengeType: 0 dashedName: step-63 --- @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 7d61c2fc377..f6832a596d9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -1,6 +1,6 @@ --- id: 62a8b711ab7a12161c7d9b67 -title: Step 64 +title: Passo 64 challengeType: 0 dashedName: step-64 --- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index 88936f5bfa2..32e15631eff 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -1,6 +1,6 @@ --- id: 62a8b9770050d217d2247801 -title: Step 65 +title: Passo 65 challengeType: 0 dashedName: step-65 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index 69288ecb4e1..208a1ee7d62 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -1,6 +1,6 @@ --- id: 62a8c0c8313e891a15ec23e7 -title: Step 66 +title: Passo 66 challengeType: 0 dashedName: step-66 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..be808051eea 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -1,6 +1,6 @@ --- id: 62a8c1154d3ae11aee80353f -title: Step 67 +title: Passo 67 challengeType: 0 dashedName: step-67 --- @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index 0592e55732f..e5a5328cf3b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -1,6 +1,6 @@ --- id: 62a8c151b23bf21bc7c4fcba -title: Step 68 +title: Passo 68 challengeType: 0 dashedName: step-68 --- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index dae4fde8ce5..b2ac70a9216 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -1,6 +1,6 @@ --- id: 62a8c173949f851c83c64756 -title: Step 69 +title: Passo 69 challengeType: 0 dashedName: step-69 --- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index e9f623af532..11670fe4a84 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -1,6 +1,6 @@ --- id: 62a8c242b25a531f2909e5bc -title: Step 70 +title: Passo 70 challengeType: 0 dashedName: step-70 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 2b1a0601a9f..115422a170f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -1,6 +1,6 @@ --- id: 62a8c2bbbd8aa82052f47c53 -title: Step 71 +title: Passo 71 challengeType: 0 dashedName: step-71 --- @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index 4f76913a203..0f9e6f34f94 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -1,6 +1,6 @@ --- id: 62a8c31ec0ec78216a1c36a0 -title: Step 72 +title: Passo 72 challengeType: 0 dashedName: step-72 --- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 10345cc83c9..a7243bd07bd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -1,6 +1,6 @@ --- id: 62a8c370ad8c68227137e0bc -title: Step 73 +title: Passo 73 challengeType: 0 dashedName: step-73 --- @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 061620e44f2..dfa89f319ed 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -1,6 +1,6 @@ --- id: 62a8c3ebc6c35e23785e1a19 -title: Step 74 +title: Passo 74 challengeType: 0 dashedName: step-74 --- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index 97b514a9398..d015e32f21c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -1,6 +1,6 @@ --- id: 62a8c41ecaf1bd24536129b8 -title: Step 75 +title: Passo 75 challengeType: 0 dashedName: step-75 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index 5e7b011ae1b..cf32e6e95f3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -1,6 +1,6 @@ --- id: 62a8c465fa7b0c252f4a8f0c -title: Step 76 +title: Passo 76 challengeType: 0 dashedName: step-76 --- @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index ede7d4fe8ab..f1a940f7143 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -1,6 +1,6 @@ --- id: 62a8c4db0710f3260f867a92 -title: Step 77 +title: Passo 77 challengeType: 0 dashedName: step-77 --- @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index 829a27526ca..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: Passo 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -A string `condition` é apenas um placeholder. Altere a condição da instrução `if` para verificar se `gold` é maior ou igual a `10`. - -Aqui está uma instrução `if` que verifica se `num` é maior ou igual a `5`: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -A instrução `if` deve verificar se `gold` é maior ou igual a `10`. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -A função `buyHealth` deve atualizar `health` e `gold` se `gold` for maior ou igual a `10`. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -A função `buyHealth` não deve atualizar `health` e `gold` se `gold` for menor que `10`. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index 3a7c37cde36..295d318f23f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -1,6 +1,6 @@ --- id: 62a8c5db7888af27af23f0dd -title: Step 78 +title: Passo 78 challengeType: 0 dashedName: step-78 --- @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index 155008344eb..293089a7ec5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -1,6 +1,6 @@ --- id: 62a8c65b75664c28a8e59c16 -title: Step 79 +title: Passo 79 challengeType: 0 dashedName: step-79 --- @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index b148525ccb5..6f52a011f98 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -1,6 +1,6 @@ --- id: 62a8c6815f5f1a29735efe1b -title: Step 80 +title: Passo 80 challengeType: 0 dashedName: step-80 --- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index 2ff276a83d2..7ae4c99ef8d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -1,6 +1,6 @@ --- id: 62a8c7322e42962ad53ad204 -title: Step 81 +title: Passo 81 challengeType: 0 dashedName: step-81 --- @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index d4d822dcc6e..c7d0f6fa259 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -1,6 +1,6 @@ --- id: 62a8c7a59e72c02bb1c717d2 -title: Step 82 +title: Passo 82 challengeType: 0 dashedName: step-82 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index 38616e72e1f..df91b03981e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -1,6 +1,6 @@ --- id: 62a8c89e4272512d44fc1c66 -title: Step 83 +title: Passo 83 challengeType: 0 dashedName: step-83 --- @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index ea64413137f..7d94f508e44 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -1,40 +1,40 @@ --- id: 62a8c8cee8e5cf2e001789b4 -title: Step 84 +title: Etapa 84 challengeType: 0 dashedName: step-84 --- # --description-- -O valor da variável `currentWeapon` corresponde a um índice no array `weapons`. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +O valor da variável `currentWeaponIndex` corresponde a um índice no array `weapons`. O jogador começa com um `"stick"`, já que `currentWeaponIndex` começa em `0` e `weapons[0]` é a arma `"stick"` (cajado). -Na função `buyWeapon`, use a atribuição composta para somar `1` a `currentWeapon` – o usuário está comprando a próxima arma no array `weapons`. +Na função `buyWeapon`, use a atribuição composta para adicionar `1` a `currentWeaponIndex` — o usuário está comprando a próxima arma no array `weapons`. # --hints-- -Você deve usar a atribuição composta para adicionar um a `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -A função `buyWeapon` deve aumentar `currentWeapon` em `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` O código deve estar na instrução `if`. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index f74b8b49572..685c50a6c44 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -1,6 +1,6 @@ --- id: 62a8ca22d29fe62f3952bdf5 -title: Step 85 +title: Passo 85 challengeType: 0 dashedName: step-85 --- @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Altere a atribuição de `currentWeapon` para que use o operador de incremento. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -Você deve usar o operador incremento para aumentar o `currentWeapon` em `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -Você não deve usar a atribuição composta para aumentar a `currentWeapon` em `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 694396f9b6c..7f04c3aff44 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -1,6 +1,6 @@ --- id: 62a8cb19bd7f8a304e5427a1 -title: Step 86 +title: Passo 86 challengeType: 0 dashedName: step-86 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index ddd5bbb95a8..465a5805561 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -1,6 +1,6 @@ --- id: 62a8cbd1e3595431d5a2b3f1 -title: Step 87 +title: Passo 87 challengeType: 0 dashedName: step-87 --- @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 310efbfe138..23d02c8f557 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -1,13 +1,13 @@ --- id: 62a8cce1b0c32c33017cf2e9 -title: Step 88 +title: Passo 88 challengeType: 0 dashedName: step-88 --- # --description-- -Use notação de colchetes para acessar um objeto dentro do array `weapons` e para atribuí-lo à variável `newWeapon`. Coloque a variável `currentWeapon` dentro dos colchetes. +Use notação de colchetes para acessar um objeto dentro do array `weapons` e para atribuí-lo à variável `newWeapon`. Place the variable `currentWeaponIndex` within the brackets. Quando você usa uma variável na notação de colchete, você está acessando a propriedade ou índice pelo *valor* dessa variável. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -Você deve atualizar `newWeapon` para que tenha o valor de `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index 5bffa2a762b..41892d1a4b8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -1,20 +1,20 @@ --- id: 62a8ce1dfc990134162b3bd9 -title: Step 89 +title: Passo 89 challengeType: 0 dashedName: step-89 --- # --description-- -`weapons[currentWeapon]` é um objeto. Use a notação de ponto para obter a propriedade `name` desse objeto. +`weapons[currentWeaponIndex]` is an object. Use a notação de ponto para obter a propriedade `name` desse objeto. # --hints-- -Você deve atualizar `newWeapon` para que tenha o valor de `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 4ebb4dbe77e..272470a93d8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -1,6 +1,6 @@ --- id: 62a8ce73d0dce43468f6689c -title: Step 90 +title: Passo 90 challengeType: 0 dashedName: step-90 --- @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 643cf91196d..f03f8e88ea0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -1,6 +1,6 @@ --- id: 62a8cf22272d6d35af80d4ac -title: Step 91 +title: Passo 91 challengeType: 0 dashedName: step-91 --- @@ -35,7 +35,7 @@ A função `buyWeapon` deve adicionar o valor de `newWeapon` ao array `inventory ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index 9dd5a118abd..17c0c2b7dc8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -1,6 +1,6 @@ --- id: 62a8d0337d7c67377a4a76c6 -title: Step 92 +title: Passo 92 challengeType: 0 dashedName: step-92 --- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index 8c3ee0ed394..1970cfaa4a5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -1,6 +1,6 @@ --- id: 62a8d08668fa8b38732486e9 -title: Step 93 +title: Passo 93 challengeType: 0 dashedName: step-93 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index 4db3c5b4aae..da12f4457ed 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -1,6 +1,6 @@ --- id: 62a8d0c4f12c2239b6618582 -title: Step 94 +title: Passo 94 challengeType: 0 dashedName: step-94 --- @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -150,10 +150,10 @@ const weapons = [ ]; const locations = [ { - name: "Praça da cidade", - "button text": ["Ir para a loja", "Ir para a caverna", "Lutar contra o dragão"], + name: "town square", + "button text": ["Go to store", "Go to cave", "Fight dragon"], "button functions": [goStore, goCave, fightDragon], - text: "Você está na praça da cidade.". "Você vê uma placa que diz \"Loja\"." + text: "You are in the town square. "Você vê uma placa que diz \"Loja\"." }, { name: "Loja", @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index 40d9c5a6f38..45b13a3965d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -1,26 +1,26 @@ --- id: 62a8d0fdf2dad83a92883a80 -title: Step 95 +title: Passo 95 challengeType: 0 dashedName: step-95 --- # --description-- -Uma vez que um jogador tenha a melhor arma, ele não pode comprar outra. Coloque todo o código da função `buyWeapon` dentro de uma instrução `if`. A condição deve verificar se `currentWeapon` é menor que `3` – o índice da última arma. +Uma vez que um jogador tenha a melhor arma, ele não pode comprar outra. Coloque todo o código da função `buyWeapon` dentro de uma instrução `if`. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -Você deve ter uma nova instrução `if` que verifica se `currentWeapon` é menor que `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` A instrução `if` existente deve estar dentro da nova instrução `if`. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); A instrução `else` existente deve estar dentro da nova instrução `if`. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -100,7 +100,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -123,10 +123,10 @@ const weapons = [ ]; const locations = [ { - name: "Praça da cidade", - "button text": ["Ir para a loja", "Ir para a caverna", "Lutar contra o dragão"], + name: "town square", + "button text": ["Go to store", "Go to cave", "Fight dragon"], "button functions": [goStore, goCave, fightDragon], - text: "Você está na praça da cidade.". "Você vê uma placa que diz \"Loja\"." + text: "You are in the town square. "Você vê uma placa que diz \"Loja\"." }, { name: "Loja", @@ -188,9 +188,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index 011439c3026..82bc1fc7226 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -1,6 +1,6 @@ --- id: 62a8d143f2a58e3b6d6e9c33 -title: Step 96 +title: Passo 96 challengeType: 0 dashedName: step-96 --- @@ -9,7 +9,7 @@ dashedName: step-96 Arrays têm uma propriedade `length` que retorna o número de itens no array. Você pode querer adicionar novos valores ao array `weapons` no futuro. -Altere a condição `if` para verificar se `currentWeapon` é menor do que o comprimento do array `weapons`. Um exemplo de verificação do comprimento de um array `myArray` ficaria como `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. Um exemplo de verificação do comprimento de um array `myArray` ficaria como `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ Você deve usar a propriedade `length` no array `weapons`. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -A instrução `if` deve verificar se `currentWeapon` é menor que `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index 417127770ba..676d174920a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -1,6 +1,6 @@ --- id: 62a8d1c72e8bb13c2074d93c -title: Step 98 +title: Passo 98 challengeType: 0 dashedName: step-98 --- @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -A variável `currentWeapon` é o índice do array `weapons`, mas a indexação do array começa em zero. O índice do último elemento em um array é um a menos do que o tamanho do array. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. O índice do último elemento em um array é um a menos do que o tamanho do array. Mude a condição `if` para que verifique `weapons.length - 1`, ao invés de `weapons.length`. @@ -23,10 +23,10 @@ Você deve atualizar a condição para que subtraia `1` de `weapons.length`. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -A condição deve verificar se `currentWeapon` é menor que `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index aa8a98af37f..51faf93979d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -1,6 +1,6 @@ --- id: 62a8d2146a3e853d0a6e28ca -title: Step 99 +title: Passo 99 challengeType: 0 dashedName: step-99 --- @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 881710f34b3..435e65018a5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -1,6 +1,6 @@ --- id: 62a8d24c97461b3ddb9397c8 -title: Step 101 +title: Passo 101 challengeType: 0 dashedName: step-101 --- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 3af92362efd..2ed50196d52 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -1,6 +1,6 @@ --- id: 62a8d2e2a073be3edb46116f -title: Step 102 +title: Passo 102 challengeType: 0 dashedName: step-102 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index 8a4e2c09bba..d6eb8706315 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -1,6 +1,6 @@ --- id: 62a8d31ebbc10e3fe1b28e03 -title: Step 103 +title: Passo 103 challengeType: 0 dashedName: step-103 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 76ebe01cacf..b46a445c63b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -1,6 +1,6 @@ --- id: 62a8d35660db4040ba292193 -title: Step 104 +title: Passo 104 challengeType: 0 dashedName: step-104 --- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index e7497b40dbd..570348c2309 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -1,6 +1,6 @@ --- id: 62a8d382cd075f4169223e14 -title: Step 105 +title: Passo 105 challengeType: 0 dashedName: step-105 --- @@ -9,10 +9,6 @@ dashedName: step-105 O próximo passo é criar uma variável chamada `currentWeapon`. -Observe que você já tem uma variável `currentWeapon` em outro lugar no código. Como essa nova variável `currentWeapon` estará dentro de uma instrução `if`, o escopo será apenas para esse bloco de código. - -Escopo é o termo usado para descrever onde uma variável pode ser acessada. Se uma variável é declarada dentro de um bloco de código, ela só é acessível ao código dentro desse bloco. Isto é chamado de escopo de bloco. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 89a5876dc06..14bd085c680 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -1,6 +1,6 @@ --- id: 62a8d539dc11cb42b5dd7ec8 -title: Step 106 +title: Passo 106 challengeType: 0 dashedName: step-106 --- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index c9a71892de4..0c4dc316e6a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -1,6 +1,6 @@ --- id: 62a8d61ddfe35744369365b7 -title: Step 107 +title: Passo 107 challengeType: 0 dashedName: step-107 --- @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Use o operador de concatenação para fazer isso na mesma linha. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Use o operador de concatenação para fazer isso na mesma linha. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` O `text.innerText` deve atualizar para a string apropriada. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index 7279e7362fe..8e258388d31 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -1,6 +1,6 @@ --- id: 62a8d6c7001ebc45350e3d16 -title: Step 108 +title: Passo 108 challengeType: 0 dashedName: step-108 --- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index 5543d4688e8..ea83b45619d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -1,6 +1,6 @@ --- id: 62a8d7b8ab568b4649998954 -title: Step 109 +title: Passo 109 challengeType: 0 dashedName: step-109 --- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -143,10 +143,10 @@ const weapons = [ ]; const locations = [ { - name: "Praça da cidade", - "button text": ["Ir para a loja", "Ir para a caverna", "Lutar contra o dragão"], + name: "town square", + "button text": ["Go to store", "Go to cave", "Fight dragon"], "button functions": [goStore, goCave, fightDragon], - text: "Você está na praça da cidade.". "Você vê uma placa que diz \"Loja\"." + text: "You are in the town square. "Você vê uma placa que diz \"Loja\"." }, { name: "Loja", @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index 9ddb5398368..965cd20fe24 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -1,6 +1,6 @@ --- id: 62a8d81f539f004776dd9b1e -title: Step 110 +title: Passo 110 challengeType: 0 dashedName: step-110 --- @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 39f85516d01..6f50e57b704 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -1,6 +1,6 @@ --- id: 62a8dd468debb449b4454086 -title: Step 111 +title: Passo 111 challengeType: 0 dashedName: step-111 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index 9c3c22e77f6..ff2367573f6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -1,6 +1,6 @@ --- id: 62a8dd9cdb16324b04cfd958 -title: Step 112 +title: Passo 112 challengeType: 0 dashedName: step-112 --- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index cb825dfe570..f91d7a1054f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -1,6 +1,6 @@ --- id: 62a8dfcf7fb1044d2f478fd1 -title: Step 113 +title: Passo 113 challengeType: 0 dashedName: step-113 --- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index ecd22752573..2a76849c924 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -1,6 +1,6 @@ --- id: 62a8e0d1d0110b4ec421489f -title: Step 114 +title: Passo 114 challengeType: 0 dashedName: step-114 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index 104efce1400..372b89ce44a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -1,6 +1,6 @@ --- id: 62a8e142f7f0bd4fed898de3 -title: Step 115 +title: Passo 115 challengeType: 0 dashedName: step-115 --- @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 4dd355066a5..813ef2a8ed6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -1,6 +1,6 @@ --- id: 62a8e1dc897df55108bcb5e8 -title: Step 116 +title: Passo 116 challengeType: 0 dashedName: step-116 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index a7768ccde28..1f8e18586ad 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -1,6 +1,6 @@ --- id: 62a8e21398ad61520edb724f -title: Step 117 +title: Passo 117 challengeType: 0 dashedName: step-117 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index 272ee5a6df2..fc983e6cb58 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -1,6 +1,6 @@ --- id: 62a8e24c673b075317cc0b09 -title: Step 118 +title: Passo 118 challengeType: 0 dashedName: step-118 --- @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 907910635b2..ebf4cd133b8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -1,6 +1,6 @@ --- id: 62a8e271f8e3d1541f9624ad -title: Step 119 +title: Passo 119 challengeType: 0 dashedName: step-119 --- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index 232de6908eb..888a1727535 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -1,6 +1,6 @@ --- id: 62a8e35675c18c56354c08cf -title: Step 120 +title: Passo 120 challengeType: 0 dashedName: step-120 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index fe40fcf1626..bdc2e2bf6bf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -1,6 +1,6 @@ --- id: 62a8e41e2f190c58404dd46e -title: Step 121 +title: Passo 121 challengeType: 0 dashedName: step-121 --- @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -Você deve usar o operador de concatenação para adicionar a arma atual à string. Você pode obter a arma atual com `weapons[currentWeapon].name`. +Você deve usar o operador de concatenação para adicionar a arma atual à string. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index 60fbbdb44b1..ea9d1c0dde6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -1,6 +1,6 @@ --- id: 62a8e45cc600c3591cee671a -title: Step 122 +title: Passo 122 challengeType: 0 dashedName: step-122 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..bfdd0043144 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -1,6 +1,6 @@ --- id: 62a8e49f4df7af5ae2d7a616 -title: Step 123 +title: Passo 123 challengeType: 0 dashedName: step-123 --- @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index 9a54fa03b1d..0751de92103 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -1,6 +1,6 @@ --- id: 62a8e4dc6a60f85bf256a0cb -title: Step 124 +title: Passo 124 challengeType: 0 dashedName: step-124 --- @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Ao usá-las, você pode gerar um número aleatório dentro de um intervalo. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ Você deve usar a mesma linha de `monsterHealth` que você já escreveu. assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -Você deve adicionar ao valor de `weapons[currentWeapon].power`. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` Você deve usar `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? Você deve adicionar o resultado de `Math.floor(Math.random() * xp) + 1` ao resultado de `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index 143636b7187..9e8e072f4aa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -1,6 +1,6 @@ --- id: 62a8ed36d7a7915dfa444ba2 -title: Step 125 +title: Passo 125 challengeType: 0 dashedName: step-125 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index d8d03fda543..f7969381c39 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -1,6 +1,6 @@ --- id: 62a8edd05e27cc668051686f -title: Step 126 +title: Passo 126 challengeType: 0 dashedName: step-126 --- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index d26bbad11d0..73cae2ad5c1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -1,6 +1,6 @@ --- id: 62a8ee154c8946678775c4a4 -title: Step 127 +title: Passo 127 challengeType: 0 dashedName: step-127 --- @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 2a1645893c0..dc6b107d4e4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -1,6 +1,6 @@ --- id: 62a8ee71f018e968a056d369 -title: Step 128 +title: Passo 128 challengeType: 0 dashedName: step-128 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index 3783d9e6d83..798a9c38f97 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -1,6 +1,6 @@ --- id: 62a8eec45f77bc69e8775294 -title: Step 129 +title: Passo 129 challengeType: 0 dashedName: step-129 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index d14a8f2d86c..20b2b2b7e93 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -1,6 +1,6 @@ --- id: 62a8eefe2e68b66ac563816b -title: Step 130 +title: Passo 130 challengeType: 0 dashedName: step-130 --- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index e0abfe9aeaa..e523134464c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -1,6 +1,6 @@ --- id: 62a8ef6a52292f6bdca4f6f8 -title: Step 131 +title: Passo 131 challengeType: 0 dashedName: step-131 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 12d2aa80246..c77e0aeaeb5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -1,6 +1,6 @@ --- id: 62a8ef8f0c76a46cd221a68c -title: Step 132 +title: Passo 132 challengeType: 0 dashedName: step-132 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 76dc31a5b2a..176fcc82d29 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -1,6 +1,6 @@ --- id: 62a8efb0e3ce826db8daf80f -title: Step 133 +title: Passo 133 challengeType: 0 dashedName: step-133 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index fe1257cbb5c..4fd37ca069e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -1,6 +1,6 @@ --- id: 62a8eff21c0b0f6ebe5b8e38 -title: Step 134 +title: Passo 134 challengeType: 0 dashedName: step-134 --- @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index b1341fbe354..d1a6d816155 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -1,6 +1,6 @@ --- id: 62a8f06fb318666fef69f91e -title: Step 135 +title: Passo 135 challengeType: 0 dashedName: step-135 --- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 5ec60ac0ecf..65bfcf4a374 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -1,6 +1,6 @@ --- id: 62a8f14fe6d1fc72454648c7 -title: Step 136 +title: Passo 136 challengeType: 0 dashedName: step-136 --- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 1c9431893f5..94004b29646 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -1,6 +1,6 @@ --- id: 62a8f1d5f5ddbf74c07f733b -title: Step 137 +title: Passo 137 challengeType: 0 dashedName: step-137 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 1e14a103962..b699b91525c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -1,13 +1,13 @@ --- id: 62a8f20463b324759953edad -title: Step 138 +title: Passo 138 challengeType: 0 dashedName: step-138 --- # --description-- -Ao final do código, crie uma função `restart`. Dentro desta função, defina `xp` como `0`, `health` como `100`, `gold` como `50`, `currentWeapon` como `0` e defina `inventory` como um array com a string `stick`. +Ao final do código, crie uma função `restart`. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Também atualize as propriedades `innerText` de `goldText`, `healthText` e `xpText` com os valores atuais. @@ -39,10 +39,10 @@ A função `restart` deve definir `gold` como `50`. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -A função `restart` deve definir `currentWeapon` como `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index ed1d9828f88..82289c6459f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -1,6 +1,6 @@ --- id: 62a8f256b813a476cae51f49 -title: Step 140 +title: Passo 140 challengeType: 0 dashedName: step-140 --- @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index 51b9a7bfce1..b0aa09ef8f9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -1,6 +1,6 @@ --- id: 62a8f35bde1750791f58773f -title: Step 142 +title: Passo 142 challengeType: 0 dashedName: step-142 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index 20445cdb2cd..1a65d805ba2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -1,6 +1,6 @@ --- id: 62a94114ce0b8918b487390f -title: Step 143 +title: Passo 143 challengeType: 0 dashedName: step-143 --- @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 701347fe5e9..609ecc01d52 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -1,6 +1,6 @@ --- id: 62aa1cea594f152ba626b872 -title: Step 144 +title: Passo 144 challengeType: 0 dashedName: step-144 --- @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index af657a7329a..a236c7d1f10 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -1,6 +1,6 @@ --- id: 62aa1d6736ba262cfa74344b -title: Step 145 +title: Passo 145 challengeType: 0 dashedName: step-145 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index e244075b13c..45d33d90a91 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -1,6 +1,6 @@ --- id: 62aa1d9f535e102e4663e7a6 -title: Step 146 +title: Passo 146 challengeType: 0 dashedName: step-146 --- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index eb24935a998..eb3e4333183 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -1,6 +1,6 @@ --- id: 62aa1e3c7c3d552fb04f0f18 -title: Step 147 +title: Passo 147 challengeType: 0 dashedName: step-147 --- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index 0e0b753d875..b17ffcf3175 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -1,6 +1,6 @@ --- id: 62aa1e8ccd579330e097ce44 -title: Step 148 +title: Passo 148 challengeType: 0 dashedName: step-148 --- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index 4c94fcd3b1f..f1d35197c66 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -1,6 +1,6 @@ --- id: 62aa1eec891ed731db227a36 -title: Step 149 +title: Passo 149 challengeType: 0 dashedName: step-149 --- @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 8652fff2e3a..a65ba9057bb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -1,6 +1,6 @@ --- id: 62aa1fed3d4e873366ff3131 -title: Step 150 +title: Passo 150 challengeType: 0 dashedName: step-150 --- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index 2c8622df936..01f2bedd139 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -1,6 +1,6 @@ --- id: 62aa204c1e1d33348ff09944 -title: Step 151 +title: Passo 151 challengeType: 0 dashedName: step-151 --- @@ -11,10 +11,10 @@ Mova a atribuição de `monsterHealth` para o bloco `if`. # --hints-- -Você deve mover `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` para o bloco `if`. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index 83fefbbfae0..781311388ca 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -1,6 +1,6 @@ --- id: 62aa20e9cf1be9358f5aceae -title: Step 152 +title: Passo 152 challengeType: 0 dashedName: step-152 --- @@ -14,13 +14,13 @@ Adicione uma instrução `else` à primeira instrução `if` dentro da função Você deve adicionar um bloco `else` após o seu bloco `if (isMonsterHit())`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Lembre-se de usar a atribuição composta e certifique-se de que haja um espaço antes da palavra `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index b103b0685f8..8055b0d3030 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -1,6 +1,6 @@ --- id: 62aa2136fc49b836dfedb959 -title: Step 153 +title: Passo 153 challengeType: 0 dashedName: step-153 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 3dd19fbec84..26981af70bf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -1,6 +1,6 @@ --- id: 62aa21971e3b743844849985 -title: Step 154 +title: Passo 154 challengeType: 0 dashedName: step-154 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index dbf7e36e9ff..bf3f24c537f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -1,6 +1,6 @@ --- id: 62aa21ea8d9d9f396b95dd87 -title: Step 155 +title: Passo 155 challengeType: 0 dashedName: step-155 --- @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 1ad5ab80b3f..40547185aee 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -1,6 +1,6 @@ --- id: 62aa226207f33d3ad4c6f546 -title: Step 156 +title: Passo 156 challengeType: 0 dashedName: step-156 --- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 319e8342ae5..971f256f557 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -1,6 +1,6 @@ --- id: 62aa22aba186563bcbf2c395 -title: Step 157 +title: Passo 157 challengeType: 0 dashedName: step-157 --- @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Diminua o valor de `currentWeapon` na instrução `if` depois de atualizar o texto. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ Você deve usar o operador de decremento. assert.match(attack.toString(), /--/); ``` -Você deve diminuir `currentWeapon` na instrução `if`. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index 1417d16ece0..6ed103f062c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -1,6 +1,6 @@ --- id: 62aa234322d4ad3e8bce42cc -title: Step 158 +title: Passo 158 challengeType: 0 dashedName: step-158 --- @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index e6deaa4f0d0..8a9a66ac76b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -1,6 +1,6 @@ --- id: 62aa2469c77b363fdb4f0e06 -title: Step 159 +title: Passo 159 challengeType: 0 dashedName: step-159 --- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index bc8a440597b..999148c1a99 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -1,6 +1,6 @@ --- id: 62aa252c3b1073415ba2b898 -title: Step 160 +title: Passo 160 challengeType: 0 dashedName: step-160 --- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index ed968aefb11..28e32d396c2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -1,6 +1,6 @@ --- id: 62aa258da314ef42ba0a1858 -title: Step 161 +title: Passo 161 challengeType: 0 dashedName: step-161 --- @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index ac38a24c41a..00168d29140 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -1,6 +1,6 @@ --- id: 62aa25fcb5837d43b4d9873d -title: Step 162 +title: Passo 162 challengeType: 0 dashedName: step-162 --- @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index 627e133b99c..93a7967be2c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -1,6 +1,6 @@ --- id: 62aa2626c3c10244b94c787b -title: Step 163 +title: Passo 163 challengeType: 0 dashedName: step-163 --- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index ecd2ec0f990..d6041029541 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -1,6 +1,6 @@ --- id: 62aa264d23cdaa45a20efada -title: Step 164 +title: Passo 164 challengeType: 0 dashedName: step-164 --- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index cbe5d5b8f98..188051acef5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -1,6 +1,6 @@ --- id: 62aa26cca3cd3d46c431e73b -title: Step 165 +title: Passo 165 challengeType: 0 dashedName: step-165 --- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index ad0d14ced32..b255da55e60 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -1,6 +1,6 @@ --- id: 62aa27227399d647e1c37a3c -title: Step 166 +title: Passo 166 challengeType: 0 dashedName: step-166 --- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 1053f5dd3fc..45032093493 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -1,6 +1,6 @@ --- id: 62aa27560def7048d7b4a095 -title: Step 167 +title: Passo 167 challengeType: 0 dashedName: step-167 --- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..5cf4b6c8f62 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -1,6 +1,6 @@ --- id: 62aa27c40ca6f04ab8be5fac -title: Step 168 +title: Passo 168 challengeType: 0 dashedName: step-168 --- @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index b42cf9d594f..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -Laços `for` são declarados com três expressões separadas por ponto e vírgula. `for (a; b; c)`, onde `a` é a expressão de inicialização, `b` é a condição e `c` é a expressão final. - -A expressão de inicialização é executada apenas uma vez, antes do laço iniciar, e é frequentemente usada para definir e configurar a variável de laço. Pense nisso como declarar um contador para usar no laço. - -Muitos laços do tipo `for` usam `i` como contador e começam do `0`, então mude `let x = 1;` para `let i = 0;`. - -# --hints-- - -Você deve alterar a inicialização no laço `for` para que seja `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index fe7b91f8d44..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -A segunda instrução em um laço `for`, a instrução condicional, é avaliada no início de cada iteração de laço. O laço continuará enquanto a condição for avaliada como verdadeira. - -Desejamos que o laço se repita `10` vezes, então substitua `x < 5` por `i < 10`. - -# --hints-- - -Você deve atualizar a instrução de condição para que seja `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index d5e8b9f053b..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -A última instrução em um laço `for`, a expressão final, é executada ao final de cada iteração do laço. - -Como mudamos a instrução de inicialização para que use `i` em vez de `x`, altere `x++` para `i++`. Isso vai incrementar o inicializador `i` em 1 após cada laço. - -# --hints-- - -Você deve alterar a expressão final para `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index dd6ef8bf7fc..8f1d8ee779b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -1,6 +1,6 @@ --- id: 62aa28fb651bf14efa2dbb16 -title: Step 169 +title: Passo 169 challengeType: 0 dashedName: step-169 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 3d2bd32e299..7d63c54c88b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -1,6 +1,6 @@ --- id: 62aa2943669c9d5026af6985 -title: Step 170 +title: Passo 170 challengeType: 0 dashedName: step-170 --- @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index af6f163b792..937decb8173 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -1,6 +1,6 @@ --- id: 62aa2999ec27ec516655eba6 -title: Step 171 +title: Passo 171 challengeType: 0 dashedName: step-171 --- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index aae13c1baf8..30b736b42e4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -1,6 +1,6 @@ --- id: 62aa29d8f8f88152c91350ca -title: Step 172 +title: Passo 172 challengeType: 0 dashedName: step-172 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index aaf9475557c..71d36476700 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -1,6 +1,6 @@ --- id: 62aa2aec2f09d454253aad6c -title: Step 173 +title: Passo 173 challengeType: 0 dashedName: step-173 --- @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index af0d8785963..f64b6eede1e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -1,6 +1,6 @@ --- id: 62aa2ba9cd881355a6f0a5a8 -title: Step 174 +title: Passo 174 challengeType: 0 dashedName: step-174 --- @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index 41b6cf48c99..cefffa980f3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -1,6 +1,6 @@ --- id: 62b46e3a8d4be31be5af793d -title: Step 16 +title: Passo 16 challengeType: 0 dashedName: step-16 --- @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index cc41727b1ee..b5b1ee62162 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -1,6 +1,6 @@ --- id: 62ba17beef16c563069a65d8 -title: Step 139 +title: Passo 139 challengeType: 0 dashedName: step-139 --- @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index cac2d6910fe..4da74b79e29 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -1,6 +1,6 @@ --- id: 62fc1ee0c5a89717d4785729 -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index c7e56f643c5..228c195e345 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -1,6 +1,6 @@ --- id: 62fc20387ef88d1d1998aac5 -title: Step 18 +title: Passo 18 challengeType: 0 dashedName: step-18 --- @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index 1c07f49f6e0..9ca34d19ce4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -1,6 +1,6 @@ --- id: 62fc211760bfc220f4734800 -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..be6fa5a0ace 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -1,6 +1,6 @@ --- id: 6577ea4f23e3ba1217007bc7 -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..9462d7777b4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -1,6 +1,6 @@ --- id: 65b2f6acce65b7a69751a090 -title: Step 141 +title: Passo 141 challengeType: 0 dashedName: step-141 --- @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..711c541d9b4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -1,6 +1,6 @@ --- id: 660880e67dfed9eb6adb7178 -title: Step 48 +title: Passo 48 challengeType: 0 dashedName: step-48 --- @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..83907c4ee8c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -1,6 +1,6 @@ --- id: 66088382bd1422ed8b5309c3 -title: Step 49 +title: Passo 49 challengeType: 0 dashedName: step-49 --- @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..5a6b4bcac6d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -1,6 +1,6 @@ --- id: 66088621742011f008175e5e -title: Step 51 +title: Passo 51 challengeType: 0 dashedName: step-51 --- @@ -9,7 +9,7 @@ dashedName: step-51 There are two ways to access the properties of an object: dot notation (`.`) and bracket notation (`[]`), similar to an array. -Dot notation is what you use when you know the name of the property you're trying to access ahead of time. +Notação de ponto é o que você utiliza quando você sabe o nome da propriedade que você está tentando acessar antecipadamente. ```js object.property; @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..97b4b670556 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -1,6 +1,6 @@ --- id: 6608b7985f4ba5127cbc401b -title: Step 52 +title: Passo 52 challengeType: 0 dashedName: step-52 --- @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..1446621aa63 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -1,6 +1,6 @@ --- id: 6608b8713915f21398ff32e1 -title: Step 50 +title: Passo 50 challengeType: 0 dashedName: step-50 --- @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..7480a6d8d69 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -1,6 +1,6 @@ --- id: 6608bee87c43ca194effebdf -title: Step 53 +title: Passo 53 challengeType: 0 dashedName: step-53 --- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..713ddf9abee 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -1,6 +1,6 @@ --- id: 662fbead61552e06d30fc048 -title: Step 97 +title: Passo 97 challengeType: 0 dashedName: step-97 --- @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..6033bb0c0d4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -1,6 +1,6 @@ --- id: 662fc372da60030ae25b194e -title: Step 100 +title: Passo 100 challengeType: 0 dashedName: step-100 --- @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-oop-by-building-a-shopping-cart/63f03686c5ea863533ec71f4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-oop-by-building-a-shopping-cart/63f03686c5ea863533ec71f4.md index eb5690352ed..e76c92da4ee 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-oop-by-building-a-shopping-cart/63f03686c5ea863533ec71f4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-oop-by-building-a-shopping-cart/63f03686c5ea863533ec71f4.md @@ -18,7 +18,7 @@ const afterCalculateTotal = code.split('calculateTotal')[1]; assert.match(afterCalculateTotal, /const\s+tax\s*=/); ``` -Assign the value of calling your new `.calculateTaxes()` method, passing `subTotal` as the argument, to the `tax` variable. Remember to use the `this` keyword. +Assign the value of calling your new `.calculateTaxes()` method, passing `subTotal` as the argument, to the `tax` variable. Lembre-se de usar a palavra-chave `this`. ```js const afterCalculateTotal = code.split('calculateTotal')[1]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653283d07b8f9d294aafa83b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653283d07b8f9d294aafa83b.md index 0ce4dc5facb..c31f4e9a660 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653283d07b8f9d294aafa83b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653283d07b8f9d294aafa83b.md @@ -1,6 +1,6 @@ --- id: 653283d07b8f9d294aafa83b -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65362bfd67d61d517deef191.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65362bfd67d61d517deef191.md index 85ecb1315a2..a834aaf2248 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65362bfd67d61d517deef191.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65362bfd67d61d517deef191.md @@ -1,6 +1,6 @@ --- id: 65362bfd67d61d517deef191 -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653635c731206b718659d3d5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653635c731206b718659d3d5.md index 92513b303a0..43068617883 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653635c731206b718659d3d5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653635c731206b718659d3d5.md @@ -1,6 +1,6 @@ --- id: 653635c731206b718659d3d5 -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653639d63a45a077333312c8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653639d63a45a077333312c8.md index a5e2e8ecf98..6d89295e03d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653639d63a45a077333312c8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653639d63a45a077333312c8.md @@ -1,6 +1,6 @@ --- id: 653639d63a45a077333312c8 -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653641509b6e7681a9333245.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653641509b6e7681a9333245.md index d6621096da8..f3a9764237b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653641509b6e7681a9333245.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653641509b6e7681a9333245.md @@ -1,6 +1,6 @@ --- id: 653641509b6e7681a9333245 -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65364566e84e378837fbaf2a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65364566e84e378837fbaf2a.md index f8d998f6a1c..62c453006d2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65364566e84e378837fbaf2a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65364566e84e378837fbaf2a.md @@ -1,6 +1,6 @@ --- id: 65364566e84e378837fbaf2a -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653fb19b515fde28243f727a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653fb19b515fde28243f727a.md index 298043ea0b5..845be5cfd80 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653fb19b515fde28243f727a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/653fb19b515fde28243f727a.md @@ -1,6 +1,6 @@ --- id: 653fb19b515fde28243f727a -title: Step 17 +title: Passo 17 challengeType: 0 dashedName: step-17 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65420b821b14f25a6b35c3b3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65420b821b14f25a6b35c3b3.md index 6275fd6d43a..fe358422e1b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65420b821b14f25a6b35c3b3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65420b821b14f25a6b35c3b3.md @@ -1,6 +1,6 @@ --- id: 65420b821b14f25a6b35c3b3 -title: Step 18 +title: Passo 18 challengeType: 0 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65420dcfc60580678dad7a92.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65420dcfc60580678dad7a92.md index 7638b5518eb..aa93fca13e2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65420dcfc60580678dad7a92.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65420dcfc60580678dad7a92.md @@ -1,6 +1,6 @@ --- id: 65420dcfc60580678dad7a92 -title: Step 20 +title: 20° passo challengeType: 0 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654210a9eda99477f5697a94.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654210a9eda99477f5697a94.md index 45c0f56e5cd..99ac4583219 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654210a9eda99477f5697a94.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654210a9eda99477f5697a94.md @@ -1,6 +1,6 @@ --- id: 654210a9eda99477f5697a94 -title: Step 21 +title: Passo 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654212b82fb5cf872f77148f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654212b82fb5cf872f77148f.md index 1fab73c6354..6e675b413d3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654212b82fb5cf872f77148f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654212b82fb5cf872f77148f.md @@ -1,6 +1,6 @@ --- id: 654212b82fb5cf872f77148f -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654213f2fad2d48f74d6c239.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654213f2fad2d48f74d6c239.md index 1d4d4f75fc4..0b1df16f4df 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654213f2fad2d48f74d6c239.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654213f2fad2d48f74d6c239.md @@ -1,6 +1,6 @@ --- id: 654213f2fad2d48f74d6c239 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654215fe7b4a899ddceb3b60.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654215fe7b4a899ddceb3b60.md index 492d5c4967f..9d2ed19bf5f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654215fe7b4a899ddceb3b60.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654215fe7b4a899ddceb3b60.md @@ -1,6 +1,6 @@ --- id: 654215fe7b4a899ddceb3b60 -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- @@ -19,7 +19,7 @@ console.log(sentence); // Output: "This is a sentence" Chain the `join()` method to your `map()` method and pass in an empty string for the separator. -To chain multiple methods together, you can call the `join()` method on the result of the `map()` method. For example: +To chain multiple methods together, you can call the `join()` method on the result of the `map()` method. Por exemplo: ```js array.map().join(); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654218753c255fabb81f57ca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654218753c255fabb81f57ca.md index 00678cb1d0f..c3649501576 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654218753c255fabb81f57ca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/654218753c255fabb81f57ca.md @@ -1,6 +1,6 @@ --- id: 654218753c255fabb81f57ca -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65422ba173a18b1bedef1bb6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65422ba173a18b1bedef1bb6.md index 0dcdef55fba..1dc5453d2f1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65422ba173a18b1bedef1bb6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65422ba173a18b1bedef1bb6.md @@ -1,6 +1,6 @@ --- id: 65422ba173a18b1bedef1bb6 -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552127b2576c2fbc5ecc2ea.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552127b2576c2fbc5ecc2ea.md index d56da85b01c..ea17b10bbc0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552127b2576c2fbc5ecc2ea.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552127b2576c2fbc5ecc2ea.md @@ -1,6 +1,6 @@ --- id: 6552127b2576c2fbc5ecc2ea -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65521badc7b7470edf952372.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65521badc7b7470edf952372.md index aa564a514d8..2aa1cfd70ae 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65521badc7b7470edf952372.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65521badc7b7470edf952372.md @@ -1,6 +1,6 @@ --- id: 65521badc7b7470edf952372 -title: Step 46 +title: Passo 46 challengeType: 0 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65521ec3bb117c195c4f6cb5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65521ec3bb117c195c4f6cb5.md index f784b2c31b4..c25083b12a5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65521ec3bb117c195c4f6cb5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65521ec3bb117c195c4f6cb5.md @@ -1,6 +1,6 @@ --- id: 65521ec3bb117c195c4f6cb5 -title: Step 47 +title: Passo 47 challengeType: 0 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655220a3fa5c3c200bc8e938.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655220a3fa5c3c200bc8e938.md index f064d4996bd..f5ebda7cd34 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655220a3fa5c3c200bc8e938.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655220a3fa5c3c200bc8e938.md @@ -1,6 +1,6 @@ --- id: 655220a3fa5c3c200bc8e938 -title: Step 48 +title: Passo 48 challengeType: 0 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552303a9a78704f8ff072e9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552303a9a78704f8ff072e9.md index e96f6e45e0f..b2fd9784c53 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552303a9a78704f8ff072e9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552303a9a78704f8ff072e9.md @@ -1,6 +1,6 @@ --- id: 6552303a9a78704f8ff072e9 -title: Step 49 +title: Passo 49 challengeType: 0 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655235c2e607297f00316650.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655235c2e607297f00316650.md index 45436913a26..125a733f49c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655235c2e607297f00316650.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655235c2e607297f00316650.md @@ -1,6 +1,6 @@ --- id: 655235c2e607297f00316650 -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552385244ccf89b77d6b332.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552385244ccf89b77d6b332.md index defa0935605..1c14dd15949 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552385244ccf89b77d6b332.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6552385244ccf89b77d6b332.md @@ -1,6 +1,6 @@ --- id: 6552385244ccf89b77d6b332 -title: Step 52 +title: Passo 52 challengeType: 0 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655243068222c2c1166b90b0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655243068222c2c1166b90b0.md index 76bd20195e8..ca7a3deb0cb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655243068222c2c1166b90b0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655243068222c2c1166b90b0.md @@ -1,6 +1,6 @@ --- id: 655243068222c2c1166b90b0 -title: Step 53 +title: Passo 53 challengeType: 0 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655476e1ff522252fdcce5e4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655476e1ff522252fdcce5e4.md index b6bd20ee34c..24225ceb4b6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655476e1ff522252fdcce5e4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655476e1ff522252fdcce5e4.md @@ -1,6 +1,6 @@ --- id: 655476e1ff522252fdcce5e4 -title: Step 54 +title: Passo 54 challengeType: 0 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655479aa3e1e0360ae38b7a6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655479aa3e1e0360ae38b7a6.md index 8f887b50c0c..2efbca45609 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655479aa3e1e0360ae38b7a6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655479aa3e1e0360ae38b7a6.md @@ -1,6 +1,6 @@ --- id: 655479aa3e1e0360ae38b7a6 -title: Step 55 +title: Passo 55 challengeType: 0 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65547ee197840478a1b95f4b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65547ee197840478a1b95f4b.md index e0c3f33449c..2ef561d1d98 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65547ee197840478a1b95f4b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65547ee197840478a1b95f4b.md @@ -1,6 +1,6 @@ --- id: 65547ee197840478a1b95f4b -title: Step 56 +title: Passo 56 challengeType: 0 dashedName: step-56 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6554815fe2472f8bfdab7642.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6554815fe2472f8bfdab7642.md index d082d12219e..5d6ca0e9f30 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6554815fe2472f8bfdab7642.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6554815fe2472f8bfdab7642.md @@ -1,6 +1,6 @@ --- id: 6554815fe2472f8bfdab7642 -title: Step 57 +title: Passo 57 challengeType: 0 dashedName: step-57 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655482742cc5499726e3f347.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655482742cc5499726e3f347.md index ed13f423195..7df5a8a0c25 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655482742cc5499726e3f347.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655482742cc5499726e3f347.md @@ -1,6 +1,6 @@ --- id: 655482742cc5499726e3f347 -title: Step 58 +title: Passo 58 challengeType: 0 dashedName: step-58 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655483ebf0096ba02b2c3d4c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655483ebf0096ba02b2c3d4c.md index bca441ac678..bad6b03431d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655483ebf0096ba02b2c3d4c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655483ebf0096ba02b2c3d4c.md @@ -1,6 +1,6 @@ --- id: 655483ebf0096ba02b2c3d4c -title: Step 59 +title: Passo 59 challengeType: 0 dashedName: step-59 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655485321913feabbc5f00f8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655485321913feabbc5f00f8.md index b030cec1fce..cfa36296669 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655485321913feabbc5f00f8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655485321913feabbc5f00f8.md @@ -1,6 +1,6 @@ --- id: 655485321913feabbc5f00f8 -title: Step 60 +title: Passo 60 challengeType: 0 dashedName: step-60 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6554860ea4dfbab2f4786fc8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6554860ea4dfbab2f4786fc8.md index 315e81e0f1a..bb303ecef20 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6554860ea4dfbab2f4786fc8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6554860ea4dfbab2f4786fc8.md @@ -1,6 +1,6 @@ --- id: 6554860ea4dfbab2f4786fc8 -title: Step 61 +title: Passo 61 challengeType: 0 dashedName: step-61 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655487f686aabfc2a10ba887.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655487f686aabfc2a10ba887.md index f10e0a6116d..bb53e3f54cc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655487f686aabfc2a10ba887.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655487f686aabfc2a10ba887.md @@ -1,6 +1,6 @@ --- id: 655487f686aabfc2a10ba887 -title: Step 50 +title: Passo 50 challengeType: 0 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65548f747a4cdafd186948d1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65548f747a4cdafd186948d1.md index 162f85a3ee9..64103737caa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65548f747a4cdafd186948d1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65548f747a4cdafd186948d1.md @@ -1,6 +1,6 @@ --- id: 65548f747a4cdafd186948d1 -title: Step 62 +title: Passo 62 challengeType: 0 dashedName: step-62 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655490f55c36900779336988.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655490f55c36900779336988.md index a7cfdfb4a9a..36683ddbdc8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655490f55c36900779336988.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655490f55c36900779336988.md @@ -1,6 +1,6 @@ --- id: 655490f55c36900779336988 -title: Step 63 +title: Passo 63 challengeType: 0 dashedName: step-63 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655492e6b90c7a198c587943.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655492e6b90c7a198c587943.md index faac19f2b6c..062e853d60e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655492e6b90c7a198c587943.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655492e6b90c7a198c587943.md @@ -1,6 +1,6 @@ --- id: 655492e6b90c7a198c587943 -title: Step 65 +title: Passo 65 challengeType: 0 dashedName: step-65 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655494d5a15d6a2567e1ea60.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655494d5a15d6a2567e1ea60.md index 52488865a99..074e9896819 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655494d5a15d6a2567e1ea60.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655494d5a15d6a2567e1ea60.md @@ -1,6 +1,6 @@ --- id: 655494d5a15d6a2567e1ea60 -title: Step 66 +title: Passo 66 challengeType: 0 dashedName: step-66 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655495a6bd96e42bc3baa795.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655495a6bd96e42bc3baa795.md index f1d797a83c7..5e52ff92f0f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655495a6bd96e42bc3baa795.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655495a6bd96e42bc3baa795.md @@ -1,6 +1,6 @@ --- id: 655495a6bd96e42bc3baa795 -title: Step 67 +title: Passo 67 challengeType: 0 dashedName: step-67 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d17af9ff06a14d399f6d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d17af9ff06a14d399f6d.md index 99ef4101b06..8e8725923e8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d17af9ff06a14d399f6d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d17af9ff06a14d399f6d.md @@ -1,6 +1,6 @@ --- id: 6555d17af9ff06a14d399f6d -title: Step 68 +title: Passo 68 challengeType: 0 dashedName: step-68 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d458687cb3b357834df9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d458687cb3b357834df9.md index ce7bf7f4b2f..226e5b20c13 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d458687cb3b357834df9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d458687cb3b357834df9.md @@ -1,6 +1,6 @@ --- id: 6555d458687cb3b357834df9 -title: Step 69 +title: Passo 69 challengeType: 0 dashedName: step-69 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d729c9bfd7c3195f1948.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d729c9bfd7c3195f1948.md index 008e269e5d3..26e6b1f9779 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d729c9bfd7c3195f1948.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d729c9bfd7c3195f1948.md @@ -1,6 +1,6 @@ --- id: 6555d729c9bfd7c3195f1948 -title: Step 70 +title: Passo 70 challengeType: 0 dashedName: step-70 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d7e384056dc9c581fadf.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d7e384056dc9c581fadf.md index 46455876dda..1cfb8c255b8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d7e384056dc9c581fadf.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d7e384056dc9c581fadf.md @@ -1,6 +1,6 @@ --- id: 6555d7e384056dc9c581fadf -title: Step 71 +title: Passo 71 challengeType: 0 dashedName: step-71 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d8faed60b9d3e4a6cefb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d8faed60b9d3e4a6cefb.md index 116d10cfdc0..6222e081499 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d8faed60b9d3e4a6cefb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d8faed60b9d3e4a6cefb.md @@ -1,6 +1,6 @@ --- id: 6555d8faed60b9d3e4a6cefb -title: Step 72 +title: Passo 72 challengeType: 0 dashedName: step-72 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555dd138e70cae6b546966d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555dd138e70cae6b546966d.md index 898f6ec2d06..c892a251625 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555dd138e70cae6b546966d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555dd138e70cae6b546966d.md @@ -1,6 +1,6 @@ --- id: 6555dd138e70cae6b546966d -title: Step 73 +title: Passo 73 challengeType: 0 dashedName: step-73 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555de565387a2efe90a6ccc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555de565387a2efe90a6ccc.md index 83f9e50db29..a81c0390d2b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555de565387a2efe90a6ccc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555de565387a2efe90a6ccc.md @@ -1,6 +1,6 @@ --- id: 6555de565387a2efe90a6ccc -title: Step 74 +title: Passo 74 challengeType: 0 dashedName: step-74 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e04aeb225bfbae237344.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e04aeb225bfbae237344.md index 69b56cbdc2e..c48e08bde3a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e04aeb225bfbae237344.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e04aeb225bfbae237344.md @@ -1,6 +1,6 @@ --- id: 6555e04aeb225bfbae237344 -title: Step 75 +title: Passo 75 challengeType: 0 dashedName: step-75 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e0bfe4d69904410f7cd3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e0bfe4d69904410f7cd3.md index 0fdbc11d3da..02864b8eb3c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e0bfe4d69904410f7cd3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e0bfe4d69904410f7cd3.md @@ -1,6 +1,6 @@ --- id: 6555e0bfe4d69904410f7cd3 -title: Step 76 +title: Passo 76 challengeType: 0 dashedName: step-76 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e39a5f4c6f138c7d9405.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e39a5f4c6f138c7d9405.md index 51f409fcf43..d35e9d63d07 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e39a5f4c6f138c7d9405.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e39a5f4c6f138c7d9405.md @@ -1,6 +1,6 @@ --- id: 6555e39a5f4c6f138c7d9405 -title: Step 77 +title: Passo 77 challengeType: 0 dashedName: step-77 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e57d3e6d9d221c4735be.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e57d3e6d9d221c4735be.md index 017038df5b1..220b8f1910c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e57d3e6d9d221c4735be.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e57d3e6d9d221c4735be.md @@ -1,6 +1,6 @@ --- id: 6555e57d3e6d9d221c4735be -title: Step 78 +title: Passo 78 challengeType: 0 dashedName: step-78 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e6cec786da2aadc11ea0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e6cec786da2aadc11ea0.md index c01b6fdac92..e1e4edf2a5d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e6cec786da2aadc11ea0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e6cec786da2aadc11ea0.md @@ -1,6 +1,6 @@ --- id: 6555e6cec786da2aadc11ea0 -title: Step 79 +title: Passo 79 challengeType: 0 dashedName: step-79 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e7acdbae972d3e8e0f5b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e7acdbae972d3e8e0f5b.md index 8f56ce4ef32..eadf33f7e58 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e7acdbae972d3e8e0f5b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e7acdbae972d3e8e0f5b.md @@ -1,6 +1,6 @@ --- id: 6555e7acdbae972d3e8e0f5b -title: Step 80 +title: Passo 80 challengeType: 0 dashedName: step-80 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e9197bf1d7416bdd76e0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e9197bf1d7416bdd76e0.md index 350f9a94c5a..450df7a6f3a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e9197bf1d7416bdd76e0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e9197bf1d7416bdd76e0.md @@ -1,6 +1,6 @@ --- id: 6555e9197bf1d7416bdd76e0 -title: Step 81 +title: Passo 81 challengeType: 0 dashedName: step-81 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555ebf07ec610585a626f72.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555ebf07ec610585a626f72.md index 2062b06d1b5..be722d96f49 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555ebf07ec610585a626f72.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555ebf07ec610585a626f72.md @@ -1,6 +1,6 @@ --- id: 6555ebf07ec610585a626f72 -title: Step 82 +title: Passo 82 challengeType: 0 dashedName: step-82 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65571e742fbf4532d8f98e90.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65571e742fbf4532d8f98e90.md index f3510e06882..7b5c3b6d866 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65571e742fbf4532d8f98e90.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65571e742fbf4532d8f98e90.md @@ -1,6 +1,6 @@ --- id: 65571e742fbf4532d8f98e90 -title: Step 83 +title: Passo 83 challengeType: 0 dashedName: step-83 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655720534347cb3f31cdfb3d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655720534347cb3f31cdfb3d.md index 58dbc36e7e3..541c163e24f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655720534347cb3f31cdfb3d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655720534347cb3f31cdfb3d.md @@ -1,6 +1,6 @@ --- id: 655720534347cb3f31cdfb3d -title: Step 84 +title: Etapa 84 challengeType: 0 dashedName: step-84 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572399a8e16d50bc2c1ff3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572399a8e16d50bc2c1ff3.md index 644230ea84a..f9c44371025 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572399a8e16d50bc2c1ff3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572399a8e16d50bc2c1ff3.md @@ -1,6 +1,6 @@ --- id: 65572399a8e16d50bc2c1ff3 -title: Step 85 +title: Passo 85 challengeType: 0 dashedName: step-85 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655724bac464795a0ad91082.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655724bac464795a0ad91082.md index f71d9047700..8e79cc0f875 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655724bac464795a0ad91082.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655724bac464795a0ad91082.md @@ -1,6 +1,6 @@ --- id: 655724bac464795a0ad91082 -title: Step 87 +title: Passo 87 challengeType: 0 dashedName: step-87 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655727b2e1e49d6adf584442.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655727b2e1e49d6adf584442.md index a1187bd8299..775f14d3e83 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655727b2e1e49d6adf584442.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655727b2e1e49d6adf584442.md @@ -1,6 +1,6 @@ --- id: 655727b2e1e49d6adf584442 -title: Step 88 +title: Passo 88 challengeType: 0 dashedName: step-88 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655729e68e49b277a6b448bd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655729e68e49b277a6b448bd.md index e29586aeab4..c033348e650 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655729e68e49b277a6b448bd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655729e68e49b277a6b448bd.md @@ -1,6 +1,6 @@ --- id: 655729e68e49b277a6b448bd -title: Step 90 +title: Passo 90 challengeType: 0 dashedName: step-90 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572bb34a7e488224b937fc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572bb34a7e488224b937fc.md index e9360d8add4..976c648dcea 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572bb34a7e488224b937fc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572bb34a7e488224b937fc.md @@ -1,6 +1,6 @@ --- id: 65572bb34a7e488224b937fc -title: Step 91 +title: Passo 91 challengeType: 0 dashedName: step-91 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572e5aaf022790fb4a81b1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572e5aaf022790fb4a81b1.md index cedb5106ec4..ad928078bf6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572e5aaf022790fb4a81b1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572e5aaf022790fb4a81b1.md @@ -1,6 +1,6 @@ --- id: 65572e5aaf022790fb4a81b1 -title: Step 92 +title: Passo 92 challengeType: 0 dashedName: step-92 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655737cd004591b0271d6826.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655737cd004591b0271d6826.md index 371597c09df..95ba56eb028 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655737cd004591b0271d6826.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655737cd004591b0271d6826.md @@ -1,6 +1,6 @@ --- id: 655737cd004591b0271d6826 -title: Step 93 +title: Passo 93 challengeType: 0 dashedName: step-93 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573a97c59ddbbf028ca95e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573a97c59ddbbf028ca95e.md index 72f13bb0659..876a559bba6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573a97c59ddbbf028ca95e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573a97c59ddbbf028ca95e.md @@ -1,6 +1,6 @@ --- id: 65573a97c59ddbbf028ca95e -title: Step 94 +title: Passo 94 challengeType: 0 dashedName: step-94 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573d0abe4d38cd6fa13f44.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573d0abe4d38cd6fa13f44.md index ade8ba31ab4..8ff41601d83 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573d0abe4d38cd6fa13f44.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573d0abe4d38cd6fa13f44.md @@ -1,6 +1,6 @@ --- id: 65573d0abe4d38cd6fa13f44 -title: Step 95 +title: Passo 95 challengeType: 0 dashedName: step-95 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6557421eb6a7a0f0500e3106.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6557421eb6a7a0f0500e3106.md index 17ab3bdd7f4..aa5062111f4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6557421eb6a7a0f0500e3106.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6557421eb6a7a0f0500e3106.md @@ -1,6 +1,6 @@ --- id: 6557421eb6a7a0f0500e3106 -title: Step 86 +title: Passo 86 challengeType: 0 dashedName: step-86 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b49333d9f265bc1512152.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b49333d9f265bc1512152.md index 988e27db72b..e34745b6c88 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b49333d9f265bc1512152.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b49333d9f265bc1512152.md @@ -1,6 +1,6 @@ --- id: 655b49333d9f265bc1512152 -title: Step 96 +title: Passo 96 challengeType: 0 dashedName: step-96 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4bbff1dbf66cb2ed4dac.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4bbff1dbf66cb2ed4dac.md index 2419f78cee7..2f108b31dce 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4bbff1dbf66cb2ed4dac.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4bbff1dbf66cb2ed4dac.md @@ -1,6 +1,6 @@ --- id: 655b4bbff1dbf66cb2ed4dac -title: Step 97 +title: Passo 97 challengeType: 0 dashedName: step-97 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4c8f636d9675953a0388.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4c8f636d9675953a0388.md index 14aceb8006a..510db78130a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4c8f636d9675953a0388.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4c8f636d9675953a0388.md @@ -1,6 +1,6 @@ --- id: 655b4c8f636d9675953a0388 -title: Step 98 +title: Passo 98 challengeType: 0 dashedName: step-98 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4dad1d38ff7cdd65cbfe.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4dad1d38ff7cdd65cbfe.md index bb8b8090c1c..8e7e240f5ab 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4dad1d38ff7cdd65cbfe.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4dad1d38ff7cdd65cbfe.md @@ -1,6 +1,6 @@ --- id: 655b4dad1d38ff7cdd65cbfe -title: Step 99 +title: Passo 99 challengeType: 0 dashedName: step-99 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index 07f02e4f0ff..4bf04f1ba7f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index 2b4df7e27dc..e30ce3bbd96 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index c4547daad2c..ce58601f17c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/656472ed8f552d2f2b3f7883.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/656472ed8f552d2f2b3f7883.md index 2a0f5d60ff7..bdbfea98c48 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/656472ed8f552d2f2b3f7883.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/656472ed8f552d2f2b3f7883.md @@ -1,6 +1,6 @@ --- id: 656472ed8f552d2f2b3f7883 -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6567055f59d39f07d1c542dc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6567055f59d39f07d1c542dc.md index c269d934d35..fb5ffe43d22 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6567055f59d39f07d1c542dc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6567055f59d39f07d1c542dc.md @@ -1,6 +1,6 @@ --- id: 6567055f59d39f07d1c542dc -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65671421254eeb489875cdd8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65671421254eeb489875cdd8.md index 45dff8e5c94..d33e9d9d7f7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65671421254eeb489875cdd8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65671421254eeb489875cdd8.md @@ -1,6 +1,6 @@ --- id: 65671421254eeb489875cdd8 -title: Step 64 +title: Passo 64 challengeType: 0 dashedName: step-64 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65672136535209761a5cf02b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65672136535209761a5cf02b.md index 1a740859cbd..7c4b3799bd3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65672136535209761a5cf02b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65672136535209761a5cf02b.md @@ -1,6 +1,6 @@ --- id: 65672136535209761a5cf02b -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65672adafbaa37a6cef886f7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65672adafbaa37a6cef886f7.md index 801b6f8e308..6eec74f839c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65672adafbaa37a6cef886f7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65672adafbaa37a6cef886f7.md @@ -1,6 +1,6 @@ --- id: 65672adafbaa37a6cef886f7 -title: Step 89 +title: Passo 89 challengeType: 0 dashedName: step-89 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/657b2b0b6a48071a6db28e7a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/657b2b0b6a48071a6db28e7a.md index 05360243041..09480162c4d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/657b2b0b6a48071a6db28e7a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/657b2b0b6a48071a6db28e7a.md @@ -1,6 +1,6 @@ --- id: 657b2b0b6a48071a6db28e7a -title: Step 19 +title: Etapa 19 challengeType: 0 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/659b0093d7db5a1a1122b7bd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/659b0093d7db5a1a1122b7bd.md index aa7e46510ee..ab603dbafbd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/659b0093d7db5a1a1122b7bd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/659b0093d7db5a1a1122b7bd.md @@ -1,6 +1,6 @@ --- id: 659b0093d7db5a1a1122b7bd -title: Step 51 +title: Passo 51 challengeType: 0 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a608b7e7c75a04ccf0c23c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a608b7e7c75a04ccf0c23c.md index f8ae14f6676..5fd6a1fc879 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a608b7e7c75a04ccf0c23c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a608b7e7c75a04ccf0c23c.md @@ -1,6 +1,6 @@ --- id: 65a608b7e7c75a04ccf0c23c -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a6098a3405f206312e28f5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a6098a3405f206312e28f5.md index 5796f1afac3..bb8bc34e5c7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a6098a3405f206312e28f5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a6098a3405f206312e28f5.md @@ -1,6 +1,6 @@ --- id: 65a6098a3405f206312e28f5 -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a609f6e23f3b06c608fb57.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a609f6e23f3b06c608fb57.md index 8f5b90decd3..4c687b2a6d4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a609f6e23f3b06c608fb57.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a609f6e23f3b06c608fb57.md @@ -1,6 +1,6 @@ --- id: 65a609f6e23f3b06c608fb57 -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a60aa3efd8fa079c2d1537.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a60aa3efd8fa079c2d1537.md index 67bea160499..11dadb78d07 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a60aa3efd8fa079c2d1537.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a60aa3efd8fa079c2d1537.md @@ -1,6 +1,6 @@ --- id: 65a60aa3efd8fa079c2d1537 -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a60b0b8b4f96085ac23463.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a60b0b8b4f96085ac23463.md index 3c73bd6d3d2..72e2adcf9ce 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a60b0b8b4f96085ac23463.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65a60b0b8b4f96085ac23463.md @@ -1,6 +1,6 @@ --- id: 65a60b0b8b4f96085ac23463 -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65c64fe6c770a22db893e931.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65c64fe6c770a22db893e931.md index dd6bd6b3210..ff073ff45b4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65c64fe6c770a22db893e931.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65c64fe6c770a22db893e931.md @@ -1,6 +1,6 @@ --- id: 65c64fe6c770a22db893e931 -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65c6532520cf4f323329b2c6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65c6532520cf4f323329b2c6.md index 0f3b6816574..99c41869118 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65c6532520cf4f323329b2c6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65c6532520cf4f323329b2c6.md @@ -1,6 +1,6 @@ --- id: 65c6532520cf4f323329b2c6 -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65cf1f2cd796c06057bf3f3c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65cf1f2cd796c06057bf3f3c.md index e109c79d7a8..b4d215d14d6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65cf1f2cd796c06057bf3f3c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65cf1f2cd796c06057bf3f3c.md @@ -1,6 +1,6 @@ --- id: 65cf1f2cd796c06057bf3f3c -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660ae3eeef9ad289bece426b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660ae3eeef9ad289bece426b.md index d03b09f50a8..ef2fd90f3a6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660ae3eeef9ad289bece426b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660ae3eeef9ad289bece426b.md @@ -1,6 +1,6 @@ --- id: 660ae3eeef9ad289bece426b -title: Step 11 +title: Passo 10 challengeType: 0 dashedName: step-11 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660ae8ad1475698da3c3c37d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660ae8ad1475698da3c3c37d.md index 29e6b6bc94e..b2dff47a920 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660ae8ad1475698da3c3c37d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660ae8ad1475698da3c3c37d.md @@ -1,6 +1,6 @@ --- id: 660ae8ad1475698da3c3c37d -title: Step 12 +title: Etapa 12 challengeType: 0 dashedName: step-12 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660aea8782242e8f4bcc42d8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660aea8782242e8f4bcc42d8.md index 892face3686..c958559bfbe 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660aea8782242e8f4bcc42d8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660aea8782242e8f4bcc42d8.md @@ -1,6 +1,6 @@ --- id: 660aea8782242e8f4bcc42d8 -title: Step 13 +title: Etapa 13 challengeType: 0 dashedName: step-13 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660aef1d5bd6c092f1931830.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660aef1d5bd6c092f1931830.md index 7f65164825a..20b7ce53179 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660aef1d5bd6c092f1931830.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660aef1d5bd6c092f1931830.md @@ -1,6 +1,6 @@ --- id: 660aef1d5bd6c092f1931830 -title: Step 14 +title: Passo 14 challengeType: 0 dashedName: step-14 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660af2b86c0fca95f7570fc5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660af2b86c0fca95f7570fc5.md index b9032437f8d..bbb11944071 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660af2b86c0fca95f7570fc5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660af2b86c0fca95f7570fc5.md @@ -1,6 +1,6 @@ --- id: 660af2b86c0fca95f7570fc5 -title: Step 15 +title: Passo 15 challengeType: 0 dashedName: step-15 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660af462d18730978fdf5c50.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660af462d18730978fdf5c50.md index 50efd54a4b8..dd08e5c8017 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660af462d18730978fdf5c50.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/660af462d18730978fdf5c50.md @@ -1,6 +1,6 @@ --- id: 660af462d18730978fdf5c50 -title: Step 16 +title: Passo 16 challengeType: 0 dashedName: step-16 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index a452cdb06f8..76069893d0c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -Você deve declarar uma variável `cleanInputString`. -```js -assert.isDefined(cleanInputString); -``` -A variável `cleanInputString` deve ser uma função. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index fad6c966ed8..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: Passo 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -Você precisa dividir `str` em caracteres individuais. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -A função `cleanInputString` deve declarar uma variável `strArray`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -A variável `strArray` deve receber por atribuição o valor de `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index 2bbb316a9d6..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: Passo 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Declare uma variável `cleanStrArray` e defina-a como um array vazio. Você usará isso para armazenar seus caracteres de números válidos. - -# --hints-- - -`cleanInputString` deve declarar uma variável chamada `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -A variável `cleanStrArray` deve receber um array vazio. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index 9bcf1a4275c..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: Passo 21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Use um laço `for` para percorrer cada personagem no array `strArray`. - -# --hints-- - -A função `cleanInputString` deve ter um laço `for`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -O laço `for` deve inicializar uma variável chamada `i` como `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -O laço `for` deve ter uma condição que verifica se o valor de `i` é menor do que o comprimento de `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -O laço `for` deve incrementar `i` em `1` a cada vez que é executado. Use o operador de incremento para isso. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index 9b9e1e29a39..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: Passo 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). Se não for, faça o `push` do caractere (em outras palavras, insira-o) em `cleanStrArray`. - -# --hints-- - -O laço `for` deve ter uma instrução `if`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -O laço `for` deve usar `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -O laço `for` deve fazer o `push` de `strArray[i]` (inseri-lo) em `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf461011fca327d3b60fa8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf461011fca327d3b60fa8.md index d6302716949..b79f10b3cdd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf461011fca327d3b60fa8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf461011fca327d3b60fa8.md @@ -1,6 +1,6 @@ --- id: 63bf461011fca327d3b60fa8 -title: Step 19 +title: Etapa 19 challengeType: 0 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf47fd40599f29827f484d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf47fd40599f29827f484d.md index bb8394ab2cc..dd20b68b954 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf47fd40599f29827f484d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf47fd40599f29827f484d.md @@ -1,6 +1,6 @@ --- id: 63bf47fd40599f29827f484d -title: Step 20 +title: 20° passo challengeType: 0 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf492b6dfb292a79f0e675.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf492b6dfb292a79f0e675.md index 09cced12e5d..cd2e983bbd8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf492b6dfb292a79f0e675.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf492b6dfb292a79f0e675.md @@ -1,6 +1,6 @@ --- id: 63bf492b6dfb292a79f0e675 -title: Step 21 +title: Passo 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4bfe9de3852be51c8f86.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4bfe9de3852be51c8f86.md index 31359ec8f2f..ca6aef6dc9e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4bfe9de3852be51c8f86.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4bfe9de3852be51c8f86.md @@ -1,6 +1,6 @@ --- id: 63bf4bfe9de3852be51c8f86 -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4d351e06432ce9bf3627.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4d351e06432ce9bf3627.md index 2e93bd8fe67..d4c5557a268 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4d351e06432ce9bf3627.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf4d351e06432ce9bf3627.md @@ -1,6 +1,6 @@ --- id: 63bf4d351e06432ce9bf3627 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf511b85b6082e54dc1573.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf511b85b6082e54dc1573.md index 45f1a083d68..d73c4e9ac1a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf511b85b6082e54dc1573.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf511b85b6082e54dc1573.md @@ -1,6 +1,6 @@ --- id: 63bf511b85b6082e54dc1573 -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 2ad1925aaea..91d18e96179 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -1,6 +1,6 @@ --- id: 63bf5230bccd1c2f5c13e1ce -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- @@ -13,12 +13,6 @@ Comece criando uma função chamada `isInvalidInput` – ela deve receber um ún # --hints-- -Você deve declarar uma variável `isInvalidInput`. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` deve ser uma função. ```js diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf598a4c807930a13a1a27.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf598a4c807930a13a1a27.md index f3b3e075c39..069632d4992 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf598a4c807930a13a1a27.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf598a4c807930a13a1a27.md @@ -1,6 +1,6 @@ --- id: 63bf598a4c807930a13a1a27 -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a518d54f63181ab639a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a518d54f63181ab639a.md index 2a411859b45..f1b6daab881 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a518d54f63181ab639a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a518d54f63181ab639a.md @@ -1,6 +1,6 @@ --- id: 63bf5a518d54f63181ab639a -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a92fd148d3264d5322b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a92fd148d3264d5322b.md index de950852f7c..2778edd0115 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a92fd148d3264d5322b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5a92fd148d3264d5322b.md @@ -1,6 +1,6 @@ --- id: 63bf5a92fd148d3264d5322b -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5adfe2981b332eb007b6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5adfe2981b332eb007b6.md index d74c5f20219..f9a2ec3ae89 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5adfe2981b332eb007b6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5adfe2981b332eb007b6.md @@ -1,6 +1,6 @@ --- id: 63bf5adfe2981b332eb007b6 -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5bcfebff0734593fad19.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5bcfebff0734593fad19.md index 5bf3af14b90..20e3865d112 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5bcfebff0734593fad19.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5bcfebff0734593fad19.md @@ -1,6 +1,6 @@ --- id: 63bf5bcfebff0734593fad19 -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5c438f523a359769106c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5c438f523a359769106c.md index 2e43090de5a..3e940ea9144 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5c438f523a359769106c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5c438f523a359769106c.md @@ -1,6 +1,6 @@ --- id: 63bf5c438f523a359769106c -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index 1ce07327e0c..c7525846294 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -1,6 +1,6 @@ --- id: 63bf5cf03b50bf36cfbe94ea -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- @@ -11,13 +11,7 @@ O próximo passo é permitir que os usuários adicionem entradas ao contador de # --hints-- -Você deve declarar uma variável `addEntry`. - -```js -assert.isDefined(addEntry); -``` - -A variável `addEntry` deve ser uma função. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1dfbd56c71e278800010c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1dfbd56c71e278800010c.md index 52f93ce5195..c167bda4d6c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1dfbd56c71e278800010c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1dfbd56c71e278800010c.md @@ -1,6 +1,6 @@ --- id: 63c1dfbd56c71e278800010c -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e0af28078f2dfad9eb3e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e0af28078f2dfad9eb3e.md index 279ff319758..b8c0839e0f0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e0af28078f2dfad9eb3e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e0af28078f2dfad9eb3e.md @@ -1,6 +1,6 @@ --- id: 63c1e0af28078f2dfad9eb3e -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e1965a898d302e0af4e3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e1965a898d302e0af4e3.md index e2d289d28ba..abccdb74e37 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e1965a898d302e0af4e3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e1965a898d302e0af4e3.md @@ -1,6 +1,6 @@ --- id: 63c1e1965a898d302e0af4e3 -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e5b4b3c8a031def3bd65.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e5b4b3c8a031def3bd65.md index a5bacd8ee9c..8d6170b4df9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e5b4b3c8a031def3bd65.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e5b4b3c8a031def3bd65.md @@ -1,6 +1,6 @@ --- id: 63c1e5b4b3c8a031def3bd65 -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e704ee12703347625900.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e704ee12703347625900.md index c565ac593fa..77813f1edf4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e704ee12703347625900.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c1e704ee12703347625900.md @@ -1,6 +1,6 @@ --- id: 63c1e704ee12703347625900 -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2164c0df38a382062c4af.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2164c0df38a382062c4af.md index 02c2f44f16d..f10c98c2d8c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2164c0df38a382062c4af.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2164c0df38a382062c4af.md @@ -1,6 +1,6 @@ --- id: 63c2164c0df38a382062c4af -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c216da562fbb3957b9cb2c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c216da562fbb3957b9cb2c.md index f0ead8aff37..0e5faac8300 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c216da562fbb3957b9cb2c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c216da562fbb3957b9cb2c.md @@ -1,6 +1,6 @@ --- id: 63c216da562fbb3957b9cb2c -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2171c1e5b6e3aa51768d0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2171c1e5b6e3aa51768d0.md index f56c84fd090..d0ae300b083 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2171c1e5b6e3aa51768d0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2171c1e5b6e3aa51768d0.md @@ -1,6 +1,6 @@ --- id: 63c2171c1e5b6e3aa51768d0 -title: Step 46 +title: Passo 46 challengeType: 0 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21774193de43bbc6a769f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21774193de43bbc6a769f.md index 06c2ca9404e..34853543246 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21774193de43bbc6a769f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21774193de43bbc6a769f.md @@ -1,6 +1,6 @@ --- id: 63c21774193de43bbc6a769f -title: Step 47 +title: Passo 47 challengeType: 0 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c217ccd939053ce4fa16d6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c217ccd939053ce4fa16d6.md index 66b62dcafad..ea6ef478c9f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c217ccd939053ce4fa16d6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c217ccd939053ce4fa16d6.md @@ -1,6 +1,6 @@ --- id: 63c217ccd939053ce4fa16d6 -title: Step 48 +title: Passo 48 challengeType: 0 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21839f56eaf3ef4e027c4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21839f56eaf3ef4e027c4.md index 27b69a23b14..4ec9e3b07f8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21839f56eaf3ef4e027c4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21839f56eaf3ef4e027c4.md @@ -1,6 +1,6 @@ --- id: 63c21839f56eaf3ef4e027c4 -title: Step 49 +title: Passo 49 challengeType: 0 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2187f55eb0f400269568f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2187f55eb0f400269568f.md index 21cccfa16b5..45d2513d652 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2187f55eb0f400269568f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2187f55eb0f400269568f.md @@ -1,6 +1,6 @@ --- id: 63c2187f55eb0f400269568f -title: Step 50 +title: Passo 50 challengeType: 0 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c218c028c56a411b2a379a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c218c028c56a411b2a379a.md index 2c59928354c..fb50c767af1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c218c028c56a411b2a379a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c218c028c56a411b2a379a.md @@ -1,6 +1,6 @@ --- id: 63c218c028c56a411b2a379a -title: Step 51 +title: Passo 51 challengeType: 0 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2194dce265f429300c8b1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2194dce265f429300c8b1.md index 2439416ba35..66956f7e0ad 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2194dce265f429300c8b1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c2194dce265f429300c8b1.md @@ -1,6 +1,6 @@ --- id: 63c2194dce265f429300c8b1 -title: Step 53 +title: Passo 53 challengeType: 0 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21c17fa8fd6447ff0389d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21c17fa8fd6447ff0389d.md index 31fa9686c40..254ef14d2d0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21c17fa8fd6447ff0389d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21c17fa8fd6447ff0389d.md @@ -1,6 +1,6 @@ --- id: 63c21c17fa8fd6447ff0389d -title: Step 54 +title: Passo 54 challengeType: 0 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21cd2c34541469f5700a9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21cd2c34541469f5700a9.md index 33b693021e4..fa330e027d0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21cd2c34541469f5700a9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21cd2c34541469f5700a9.md @@ -1,6 +1,6 @@ --- id: 63c21cd2c34541469f5700a9 -title: Step 55 +title: Passo 55 challengeType: 0 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21d4f48267a47c2946788.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21d4f48267a47c2946788.md index 1ec043041eb..ff0cd5fbede 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21d4f48267a47c2946788.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21d4f48267a47c2946788.md @@ -1,6 +1,6 @@ --- id: 63c21d4f48267a47c2946788 -title: Step 56 +title: Passo 56 challengeType: 0 dashedName: step-56 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21dea919c8e4adb0df8e8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21dea919c8e4adb0df8e8.md index f6f46eaddc0..dcd6fdc7f28 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21dea919c8e4adb0df8e8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c21dea919c8e4adb0df8e8.md @@ -1,6 +1,6 @@ --- id: 63c21dea919c8e4adb0df8e8 -title: Step 52 +title: Passo 52 challengeType: 0 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8ab51214c8c1f1b9a49f7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8ab51214c8c1f1b9a49f7.md index 15e78e97751..75e63bba0ed 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8ab51214c8c1f1b9a49f7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8ab51214c8c1f1b9a49f7.md @@ -1,6 +1,6 @@ --- id: 63c8ab51214c8c1f1b9a49f7 -title: Step 57 +title: Passo 57 challengeType: 0 dashedName: step-57 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8ad0cd8f1e5201c4ef2e4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8ad0cd8f1e5201c4ef2e4.md index b9a55db7413..6fa14618477 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8ad0cd8f1e5201c4ef2e4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8ad0cd8f1e5201c4ef2e4.md @@ -1,6 +1,6 @@ --- id: 63c8ad0cd8f1e5201c4ef2e4 -title: Step 58 +title: Passo 58 challengeType: 0 dashedName: step-58 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8b0187cceff21c8389543.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8b0187cceff21c8389543.md index 58ebae24b31..0cf8636835c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8b0187cceff21c8389543.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8b0187cceff21c8389543.md @@ -1,6 +1,6 @@ --- id: 63c8b0187cceff21c8389543 -title: Step 59 +title: Passo 59 challengeType: 0 dashedName: step-59 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8be904ffff922f3c6f8d0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8be904ffff922f3c6f8d0.md index 650938677b0..5e17eae5c70 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8be904ffff922f3c6f8d0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8be904ffff922f3c6f8d0.md @@ -1,6 +1,6 @@ --- id: 63c8be904ffff922f3c6f8d0 -title: Step 60 +title: Passo 60 challengeType: 0 dashedName: step-60 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8c00bfb671b23f9de4159.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8c00bfb671b23f9de4159.md index 93e3f9f2eed..a22edaf34b6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8c00bfb671b23f9de4159.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8c00bfb671b23f9de4159.md @@ -1,6 +1,6 @@ --- id: 63c8c00bfb671b23f9de4159 -title: Step 61 +title: Passo 61 challengeType: 0 dashedName: step-61 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8c15fd337ad24b9b68049.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8c15fd337ad24b9b68049.md index 3f79e1298b6..693544d93d5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8c15fd337ad24b9b68049.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c8c15fd337ad24b9b68049.md @@ -1,6 +1,6 @@ --- id: 63c8c15fd337ad24b9b68049 -title: Step 62 +title: Passo 62 challengeType: 0 dashedName: step-62 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bc53735149084390e5d0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bc53735149084390e5d0.md index c9be75381ae..f9df874afdc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bc53735149084390e5d0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bc53735149084390e5d0.md @@ -1,6 +1,6 @@ --- id: 63c9bc53735149084390e5d0 -title: Step 63 +title: Passo 63 challengeType: 0 dashedName: step-63 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bcc26219e7090da0f549.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bcc26219e7090da0f549.md index 2e7a4f168c0..fa994be2f5c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bcc26219e7090da0f549.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bcc26219e7090da0f549.md @@ -1,6 +1,6 @@ --- id: 63c9bcc26219e7090da0f549 -title: Step 64 +title: Passo 64 challengeType: 0 dashedName: step-64 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bce376ca4f09c15a3768.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bce376ca4f09c15a3768.md index 0a98c56ba6e..1f5f487f520 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bce376ca4f09c15a3768.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bce376ca4f09c15a3768.md @@ -1,6 +1,6 @@ --- id: 63c9bce376ca4f09c15a3768 -title: Step 65 +title: Passo 65 challengeType: 0 dashedName: step-65 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bdd916e0c10af01ed8d7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bdd916e0c10af01ed8d7.md index 451e4442830..1f44cc261a6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bdd916e0c10af01ed8d7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bdd916e0c10af01ed8d7.md @@ -1,6 +1,6 @@ --- id: 63c9bdd916e0c10af01ed8d7 -title: Step 66 +title: Passo 66 challengeType: 0 dashedName: step-66 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9be334f4a050c0b94bc93.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9be334f4a050c0b94bc93.md index 4741330275a..b2282705c68 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9be334f4a050c0b94bc93.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9be334f4a050c0b94bc93.md @@ -1,6 +1,6 @@ --- id: 63c9be334f4a050c0b94bc93 -title: Step 67 +title: Passo 67 challengeType: 0 dashedName: step-67 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bef7fec05c0d38853828.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bef7fec05c0d38853828.md index 53de319650e..1988f8f0235 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bef7fec05c0d38853828.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bef7fec05c0d38853828.md @@ -1,6 +1,6 @@ --- id: 63c9bef7fec05c0d38853828 -title: Step 68 +title: Passo 68 challengeType: 0 dashedName: step-68 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bf80558d780e848b2987.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bf80558d780e848b2987.md index 359e62ebaa8..267caa4b92e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bf80558d780e848b2987.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9bf80558d780e848b2987.md @@ -1,6 +1,6 @@ --- id: 63c9bf80558d780e848b2987 -title: Step 69 +title: Passo 69 challengeType: 0 dashedName: step-69 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c09a7daa4f0ff92c4023.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c09a7daa4f0ff92c4023.md index 5d4e80ad16b..16f0d3d41f4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c09a7daa4f0ff92c4023.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c09a7daa4f0ff92c4023.md @@ -1,6 +1,6 @@ --- id: 63c9c09a7daa4f0ff92c4023 -title: Step 70 +title: Passo 70 challengeType: 0 dashedName: step-70 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c0d0857f0a10a57af936.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c0d0857f0a10a57af936.md index 1db813a1a0a..f9f1affd9df 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c0d0857f0a10a57af936.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c0d0857f0a10a57af936.md @@ -1,6 +1,6 @@ --- id: 63c9c0d0857f0a10a57af936 -title: Step 71 +title: Passo 71 challengeType: 0 dashedName: step-71 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c11a0a090311dff55564.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c11a0a090311dff55564.md index 3ca5a8c8f15..d75fb92a3cf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c11a0a090311dff55564.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c11a0a090311dff55564.md @@ -1,6 +1,6 @@ --- id: 63c9c11a0a090311dff55564 -title: Step 72 +title: Passo 72 challengeType: 0 dashedName: step-72 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c16dd75dd212dc12363c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c16dd75dd212dc12363c.md index fd6ed61ae22..29aff592dde 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c16dd75dd212dc12363c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c16dd75dd212dc12363c.md @@ -1,6 +1,6 @@ --- id: 63c9c16dd75dd212dc12363c -title: Step 73 +title: Passo 73 challengeType: 0 dashedName: step-73 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c1ef134f3513e751c975.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c1ef134f3513e751c975.md index bd4cc60a0d1..5b7e2d88148 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c1ef134f3513e751c975.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9c1ef134f3513e751c975.md @@ -1,6 +1,6 @@ --- id: 63c9c1ef134f3513e751c975 -title: Step 74 +title: Passo 74 challengeType: 0 dashedName: step-74 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e3a83bb3e61a80eea564.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e3a83bb3e61a80eea564.md index 627902b3610..aebfeb3aa9f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e3a83bb3e61a80eea564.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e3a83bb3e61a80eea564.md @@ -1,6 +1,6 @@ --- id: 63c9e3a83bb3e61a80eea564 -title: Step 75 +title: Passo 75 challengeType: 0 dashedName: step-75 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e45519caf31b987fbb5f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e45519caf31b987fbb5f.md index 90b4e07b408..ed0aa5a867c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e45519caf31b987fbb5f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e45519caf31b987fbb5f.md @@ -1,6 +1,6 @@ --- id: 63c9e45519caf31b987fbb5f -title: Step 76 +title: Passo 76 challengeType: 0 dashedName: step-76 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e4d2ff41811dd640504f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e4d2ff41811dd640504f.md index 811b503de4c..e153d19b792 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e4d2ff41811dd640504f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e4d2ff41811dd640504f.md @@ -1,6 +1,6 @@ --- id: 63c9e4d2ff41811dd640504f -title: Step 77 +title: Passo 77 challengeType: 0 dashedName: step-77 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e51b3a007a1eba1cd0f6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e51b3a007a1eba1cd0f6.md index b89874b6d26..f7dcdd83773 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e51b3a007a1eba1cd0f6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e51b3a007a1eba1cd0f6.md @@ -1,6 +1,6 @@ --- id: 63c9e51b3a007a1eba1cd0f6 -title: Step 78 +title: Passo 78 challengeType: 0 dashedName: step-78 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e55b4b06c11fff555c64.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e55b4b06c11fff555c64.md index 82796530e80..7179b4c7da3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e55b4b06c11fff555c64.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e55b4b06c11fff555c64.md @@ -1,6 +1,6 @@ --- id: 63c9e55b4b06c11fff555c64 -title: Step 79 +title: Passo 79 challengeType: 0 dashedName: step-79 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e5eea8261d22856ead1c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e5eea8261d22856ead1c.md index 6ef24737a9f..ff16c1e7a8e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e5eea8261d22856ead1c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e5eea8261d22856ead1c.md @@ -1,6 +1,6 @@ --- id: 63c9e5eea8261d22856ead1c -title: Step 80 +title: Passo 80 challengeType: 0 dashedName: step-80 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e63bb1e32d23b6adbe44.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e63bb1e32d23b6adbe44.md index 68f529f8708..6c6d5b548ab 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e63bb1e32d23b6adbe44.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e63bb1e32d23b6adbe44.md @@ -1,6 +1,6 @@ --- id: 63c9e63bb1e32d23b6adbe44 -title: Step 81 +title: Passo 81 challengeType: 0 dashedName: step-81 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e6b7c0303524af2d0bc2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e6b7c0303524af2d0bc2.md index e821d7dacf1..581a6b44c1c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e6b7c0303524af2d0bc2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e6b7c0303524af2d0bc2.md @@ -1,6 +1,6 @@ --- id: 63c9e6b7c0303524af2d0bc2 -title: Step 82 +title: Passo 82 challengeType: 0 dashedName: step-82 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e769df38c92635c158ba.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e769df38c92635c158ba.md index d962c2e2a3e..55ae1f21429 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e769df38c92635c158ba.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e769df38c92635c158ba.md @@ -1,6 +1,6 @@ --- id: 63c9e769df38c92635c158ba -title: Step 83 +title: Passo 83 challengeType: 0 dashedName: step-83 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e7d5b21eee2776ecc226.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e7d5b21eee2776ecc226.md index 52b3aff512e..8d44acca9df 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e7d5b21eee2776ecc226.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e7d5b21eee2776ecc226.md @@ -1,6 +1,6 @@ --- id: 63c9e7d5b21eee2776ecc226 -title: Step 84 +title: Etapa 84 challengeType: 0 dashedName: step-84 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e84c9fe8ca28c4101189.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e84c9fe8ca28c4101189.md index 6669a4eb90f..e3573365ad3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e84c9fe8ca28c4101189.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e84c9fe8ca28c4101189.md @@ -1,6 +1,6 @@ --- id: 63c9e84c9fe8ca28c4101189 -title: Step 85 +title: Passo 85 challengeType: 0 dashedName: step-85 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e8fe3a6f022a05a04675.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e8fe3a6f022a05a04675.md index 891251e3d07..7627340247e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e8fe3a6f022a05a04675.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e8fe3a6f022a05a04675.md @@ -1,6 +1,6 @@ --- id: 63c9e8fe3a6f022a05a04675 -title: Step 86 +title: Passo 86 challengeType: 0 dashedName: step-86 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e94e9df7d72aed1c24bd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e94e9df7d72aed1c24bd.md index 75372a377de..bc561a006de 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e94e9df7d72aed1c24bd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e94e9df7d72aed1c24bd.md @@ -1,6 +1,6 @@ --- id: 63c9e94e9df7d72aed1c24bd -title: Step 87 +title: Passo 87 challengeType: 0 dashedName: step-87 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ea23dbadbf2c2764e3f5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ea23dbadbf2c2764e3f5.md index 74dc82ebf8f..2540e8ecb8d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ea23dbadbf2c2764e3f5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ea23dbadbf2c2764e3f5.md @@ -1,6 +1,6 @@ --- id: 63c9ea23dbadbf2c2764e3f5 -title: Step 88 +title: Passo 88 challengeType: 0 dashedName: step-88 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ea9b16430f2d54522464.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ea9b16430f2d54522464.md index 7d7d31aaa07..ba57ab6026c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ea9b16430f2d54522464.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ea9b16430f2d54522464.md @@ -1,6 +1,6 @@ --- id: 63c9ea9b16430f2d54522464 -title: Step 89 +title: Passo 89 challengeType: 0 dashedName: step-89 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9eb09bcfaa72e3da820a1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9eb09bcfaa72e3da820a1.md index 1b5e501a0d2..742ee6f8f75 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9eb09bcfaa72e3da820a1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9eb09bcfaa72e3da820a1.md @@ -1,6 +1,6 @@ --- id: 63c9eb09bcfaa72e3da820a1 -title: Step 90 +title: Passo 90 challengeType: 0 dashedName: step-90 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9eb4a5d68f12f32d9b440.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9eb4a5d68f12f32d9b440.md index 1760910ea74..0de7c21f3ae 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9eb4a5d68f12f32d9b440.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9eb4a5d68f12f32d9b440.md @@ -1,6 +1,6 @@ --- id: 63c9eb4a5d68f12f32d9b440 -title: Step 91 +title: Passo 91 challengeType: 0 dashedName: step-91 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ebb7b12bca3025b0a935.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ebb7b12bca3025b0a935.md index 89a8f3bd431..a132caa569d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ebb7b12bca3025b0a935.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ebb7b12bca3025b0a935.md @@ -1,6 +1,6 @@ --- id: 63c9ebb7b12bca3025b0a935 -title: Step 92 +title: Passo 92 challengeType: 0 dashedName: step-92 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ec044acedf312c4974ff.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ec044acedf312c4974ff.md index 20b7b6053e4..4f2ffda456c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ec044acedf312c4974ff.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9ec044acedf312c4974ff.md @@ -1,6 +1,6 @@ --- id: 63c9ec044acedf312c4974ff -title: Step 93 +title: Passo 93 challengeType: 0 dashedName: step-93 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f24afbc9cf324dcaa9a4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f24afbc9cf324dcaa9a4.md index 0ae33dc8f5e..81c37e3693d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f24afbc9cf324dcaa9a4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f24afbc9cf324dcaa9a4.md @@ -1,6 +1,6 @@ --- id: 63c9f24afbc9cf324dcaa9a4 -title: Step 94 +title: Passo 94 challengeType: 0 dashedName: step-94 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f28bda3e3f336e21b6b4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f28bda3e3f336e21b6b4.md index a02742ee0b9..ea75f272678 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f28bda3e3f336e21b6b4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f28bda3e3f336e21b6b4.md @@ -1,6 +1,6 @@ --- id: 63c9f28bda3e3f336e21b6b4 -title: Step 95 +title: Passo 95 challengeType: 0 dashedName: step-95 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f2bff625af342023512c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f2bff625af342023512c.md index 44baa314d98..e29fce8253c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f2bff625af342023512c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9f2bff625af342023512c.md @@ -1,6 +1,6 @@ --- id: 63c9f2bff625af342023512c -title: Step 96 +title: Passo 96 challengeType: 0 dashedName: step-96 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603ac77cd4899599a98a1fe.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603ac77cd4899599a98a1fe.md index 88b4f657da3..1078c40ea96 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603ac77cd4899599a98a1fe.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603ac77cd4899599a98a1fe.md @@ -1,6 +1,6 @@ --- id: 6603ac77cd4899599a98a1fe -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603aeb33cbbbd5bbbc79b2e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603aeb33cbbbd5bbbc79b2e.md index 36d002c60d1..5b64d650f8d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603aeb33cbbbd5bbbc79b2e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603aeb33cbbbd5bbbc79b2e.md @@ -1,6 +1,6 @@ --- id: 6603aeb33cbbbd5bbbc79b2e -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603b0bcba0eb95e5256b1e2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603b0bcba0eb95e5256b1e2.md index ec8c85c692f..c23d91e3560 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603b0bcba0eb95e5256b1e2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6603b0bcba0eb95e5256b1e2.md @@ -1,6 +1,6 @@ --- id: 6603b0bcba0eb95e5256b1e2 -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/660404511dbf1b90eb23b617.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/660404511dbf1b90eb23b617.md index 203947b61e9..981af041a8e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/660404511dbf1b90eb23b617.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/660404511dbf1b90eb23b617.md @@ -1,6 +1,6 @@ --- id: 660404511dbf1b90eb23b617 -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6604080b66ff6e942d8225b1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6604080b66ff6e942d8225b1.md index b1f808ba93b..82c592b069a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6604080b66ff6e942d8225b1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/6604080b66ff6e942d8225b1.md @@ -1,6 +1,6 @@ --- id: 6604080b66ff6e942d8225b1 -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/66040ae710de0e96c26a0201.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/66040ae710de0e96c26a0201.md index cc6ce6d01e1..28358268072 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/66040ae710de0e96c26a0201.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/66040ae710de0e96c26a0201.md @@ -1,6 +1,6 @@ --- id: 66040ae710de0e96c26a0201 -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498328cb52026123e2b91.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498328cb52026123e2b91.md index be63a05a25f..4d99330b6f9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498328cb52026123e2b91.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498328cb52026123e2b91.md @@ -1,6 +1,6 @@ --- id: 643498328cb52026123e2b91 -title: Step 19 +title: Etapa 19 challengeType: 0 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498755d54c6279ba09078.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498755d54c6279ba09078.md index 20d19933c93..ea7cdf0c689 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498755d54c6279ba09078.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498755d54c6279ba09078.md @@ -1,6 +1,6 @@ --- id: 643498755d54c6279ba09078 -title: Step 20 +title: 20° passo challengeType: 0 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437124c4c03dd4c8fb35d56.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437124c4c03dd4c8fb35d56.md index 68ff2be3778..c6f5efd810f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437124c4c03dd4c8fb35d56.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437124c4c03dd4c8fb35d56.md @@ -1,6 +1,6 @@ --- id: 6437124c4c03dd4c8fb35d56 -title: Step 21 +title: Passo 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md index 481d5c247bb..c1ab5843a7f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md @@ -1,6 +1,6 @@ --- id: 6437133052eaf04d7300e622 -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md index 5d2045f0f25..77a23e3a7d6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md @@ -1,6 +1,6 @@ --- id: 643715013330824ecaa70442 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md index 80a4f6b5249..f494c1aa97c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md @@ -1,6 +1,6 @@ --- id: 64496d1e5af8c0148fbef96d -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md index 9431adbe674..25d0d6b3b6d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md @@ -1,6 +1,6 @@ --- id: 64496d80bc174a158c973080 -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md index 4a74fcecb08..d375a7a77ca 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md @@ -1,6 +1,6 @@ --- id: 64496df724dd3716a71fe971 -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md index 1f8d5f2b08c..f0effe1dae5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md @@ -1,6 +1,6 @@ --- id: 64496e9c6d7a2e189948e441 -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md index 3c6883d634c..ca5d4d0853e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md @@ -1,6 +1,6 @@ --- id: 6449749d20436c1f1dfadcf2 -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md index b6671ee339f..64f00208b39 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md @@ -1,6 +1,6 @@ --- id: 6449755666005520330cec5b -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md index dc425a9d46e..39426ed2892 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md @@ -1,6 +1,6 @@ --- id: 64497da4062602213ecf32e7 -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md index 2d694c14a86..4652a67f8a7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md @@ -1,6 +1,6 @@ --- id: 64497de936a2f322327e5c58 -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md index 5c3eca64dcf..45c24c769a7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md @@ -1,6 +1,6 @@ --- id: 64497e0e5e5a2c2329785af4 -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md index 9a1dffd587c..d5f980cafec 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md @@ -1,6 +1,6 @@ --- id: 64497e764135bd24b7960dd3 -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md index 37f1619878b..28008635a76 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md @@ -1,6 +1,6 @@ --- id: 6449842c6f6c84261075e4c9 -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md index 502fb0f758a..61bae48f158 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md @@ -1,6 +1,6 @@ --- id: 64498473a17adc26ef0ecc2d -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md index 43022fbbc98..ca98e7969fd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md @@ -1,6 +1,6 @@ --- id: 6449849b78f43527be1e8a98 -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md index 94eb47ef207..4077ec78e46 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md @@ -1,6 +1,6 @@ --- id: 64498542cab69128ab24e4de -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md index 3de6e9ac37f..d25428eddb0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md @@ -1,6 +1,6 @@ --- id: 6449860d84c9e22cbd7b497c -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md index c5f072adb88..31a478a1954 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md @@ -1,6 +1,6 @@ --- id: 6449863f592af72d9be0959e -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md index 5a5f07efb3f..43f1f0fb125 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md @@ -1,6 +1,6 @@ --- id: 6449874d5191562eb3313b3f -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md index ffae5436176..ccc31243359 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md @@ -1,6 +1,6 @@ --- id: 6449876e7aae0d2f8257a497 -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md index 93a1025428e..a54224663c6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md @@ -1,6 +1,6 @@ --- id: 64498b085028fc30a58bb6a7 -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md index c83c7f575df..ac1adc7cc2f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md @@ -1,6 +1,6 @@ --- id: 646d0889c6ff4baa46ac1c50 -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md index e6edc07c564..239525d9e8c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md @@ -1,6 +1,6 @@ --- id: 646d09a07241aaab1e777080 -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md index 78172d5b904..4f81c79cf50 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md @@ -1,6 +1,6 @@ --- id: 646d0a022da7bcabf3e3aca3 -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md index fb203bbc919..c4d44492bcb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md @@ -1,6 +1,6 @@ --- id: 646d0d20108440acc95a6b32 -title: Step 46 +title: Passo 46 challengeType: 0 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0db5175974ad8633b71c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0db5175974ad8633b71c.md index fd5c98176a4..2aafa7b32f6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0db5175974ad8633b71c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0db5175974ad8633b71c.md @@ -1,6 +1,6 @@ --- id: 646d0db5175974ad8633b71c -title: Step 47 +title: Passo 47 challengeType: 0 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md index cc380a8e16d..baae5efc5ff 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md @@ -1,6 +1,6 @@ --- id: 646d0e4636e14eae2bb3b992 -title: Step 48 +title: Passo 48 challengeType: 0 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md index 55ff5c15ca9..66e91b4a0b1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md @@ -1,6 +1,6 @@ --- id: 646d1980018efaaec2b1c28b -title: Step 49 +title: Passo 49 challengeType: 0 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md index 4f94ad89886..51fc45b159a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md @@ -1,6 +1,6 @@ --- id: 646d19fc4705e4af65c3e688 -title: Step 50 +title: Passo 50 challengeType: 0 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md index 9ebef2143ab..b6e744f2699 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md @@ -1,6 +1,6 @@ --- id: 646d1b96dd7ea4b0061458bc -title: Step 51 +title: Passo 51 challengeType: 0 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md index 56debb8ae79..f6fad5f2315 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md @@ -1,6 +1,6 @@ --- id: 646d1cadf0d96ab0b7e12da4 -title: Step 52 +title: Passo 52 challengeType: 0 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1d67f9261fb15a795588.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1d67f9261fb15a795588.md index fbf1c904701..bd820332f8b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1d67f9261fb15a795588.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1d67f9261fb15a795588.md @@ -1,6 +1,6 @@ --- id: 646d1d67f9261fb15a795588 -title: Step 53 +title: Passo 53 challengeType: 0 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md index 26ca7e9b748..11565053ae3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md @@ -1,6 +1,6 @@ --- id: 646d1e531042dfb24da1f032 -title: Step 54 +title: Passo 54 challengeType: 0 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md index 7a57c684a53..1544085fa6b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md @@ -1,6 +1,6 @@ --- id: 646d3141790b3cb337dd611a -title: Step 55 +title: Passo 55 challengeType: 0 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md index 5d1fd54660f..6f9c370167b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md @@ -1,6 +1,6 @@ --- id: 646d382c4d70ceb3dba1e830 -title: Step 56 +title: Passo 56 challengeType: 0 dashedName: step-56 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d386a685620b49db4be76.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d386a685620b49db4be76.md index 2a2ce43d736..4ebea3b7948 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d386a685620b49db4be76.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d386a685620b49db4be76.md @@ -1,6 +1,6 @@ --- id: 646d386a685620b49db4be76 -title: Step 57 +title: Passo 57 challengeType: 0 dashedName: step-57 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md index c66ffd356f8..c6d00455f24 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md @@ -1,6 +1,6 @@ --- id: 646d38c326f3c8b54023de38 -title: Step 58 +title: Passo 58 challengeType: 0 dashedName: step-58 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38f906b94cb5fe6ce7de.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38f906b94cb5fe6ce7de.md index 8b6e959ab49..b8fc8377d86 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38f906b94cb5fe6ce7de.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38f906b94cb5fe6ce7de.md @@ -1,6 +1,6 @@ --- id: 646d38f906b94cb5fe6ce7de -title: Step 59 +title: Passo 59 challengeType: 0 dashedName: step-59 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3952f6af37b6a1c241c2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3952f6af37b6a1c241c2.md index d62334319e6..00d01e64ba9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3952f6af37b6a1c241c2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3952f6af37b6a1c241c2.md @@ -1,6 +1,6 @@ --- id: 646d3952f6af37b6a1c241c2 -title: Step 60 +title: Passo 60 challengeType: 0 dashedName: step-60 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d39c156fe94b7482c3ab6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d39c156fe94b7482c3ab6.md index 95f884cda04..7a64a7e45a4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d39c156fe94b7482c3ab6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d39c156fe94b7482c3ab6.md @@ -1,6 +1,6 @@ --- id: 646d39c156fe94b7482c3ab6 -title: Step 61 +title: Passo 61 challengeType: 0 dashedName: step-61 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md index edc703cdc30..df84f8354b4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md @@ -1,6 +1,6 @@ --- id: 646d3b27cd3c56b875256301 -title: Step 62 +title: Passo 62 challengeType: 0 dashedName: step-62 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3bc75fe0c9b972da3323.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3bc75fe0c9b972da3323.md index bfa70471873..010f58282ed 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3bc75fe0c9b972da3323.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3bc75fe0c9b972da3323.md @@ -1,6 +1,6 @@ --- id: 646d3bc75fe0c9b972da3323 -title: Step 63 +title: Passo 63 challengeType: 0 dashedName: step-63 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3c146e10b0ba222bb2a7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3c146e10b0ba222bb2a7.md index fbd04ff0b3c..87858235565 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3c146e10b0ba222bb2a7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3c146e10b0ba222bb2a7.md @@ -1,6 +1,6 @@ --- id: 646d3c146e10b0ba222bb2a7 -title: Step 64 +title: Passo 64 challengeType: 0 dashedName: step-64 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d037872fbbae0a8ec0e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d037872fbbae0a8ec0e.md index 756cef18cff..11e7717683c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d037872fbbae0a8ec0e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d037872fbbae0a8ec0e.md @@ -1,6 +1,6 @@ --- id: 646d3d037872fbbae0a8ec0e -title: Step 65 +title: Passo 65 challengeType: 0 dashedName: step-65 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md index e48c71b44a6..cda0bb53320 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md @@ -1,6 +1,6 @@ --- id: 646d3d65be79c8bb9c7df9ff -title: Step 66 +title: Passo 66 challengeType: 0 dashedName: step-66 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md index ac396d720a4..c535197df4f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md @@ -1,6 +1,6 @@ --- id: 646d3d80c3b4aebc4103618e -title: Step 67 +title: Passo 67 challengeType: 0 dashedName: step-67 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3da8501e15bcd355ba1d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3da8501e15bcd355ba1d.md index f1516d8cbb2..1163fd9e34d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3da8501e15bcd355ba1d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3da8501e15bcd355ba1d.md @@ -1,6 +1,6 @@ --- id: 646d3da8501e15bcd355ba1d -title: Step 68 +title: Passo 68 challengeType: 0 dashedName: step-68 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md index 2ebd1e3e841..27bc3535b60 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md @@ -1,6 +1,6 @@ --- id: 646d3e135ab3abbdbfe5c899 -title: Step 69 +title: Passo 69 challengeType: 0 dashedName: step-69 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md index c737bba73b1..74c0e438c63 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md @@ -1,6 +1,6 @@ --- id: 646d3e64b15f92be6e61704e -title: Step 70 +title: Passo 70 challengeType: 0 dashedName: step-70 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3ee7b17ae3bf48610033.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3ee7b17ae3bf48610033.md index fb7736570ad..dd97be6dd2f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3ee7b17ae3bf48610033.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3ee7b17ae3bf48610033.md @@ -1,6 +1,6 @@ --- id: 646d3ee7b17ae3bf48610033 -title: Step 71 +title: Passo 71 challengeType: 0 dashedName: step-71 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md index 140d3e9cec4..55bb4769f04 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md @@ -1,6 +1,6 @@ --- id: 646d3f1fd12f76c02c823bb8 -title: Step 72 +title: Passo 72 challengeType: 0 dashedName: step-72 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md index 17d301bfa8d..ded6d0e4f65 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md @@ -1,6 +1,6 @@ --- id: 646d3f718b5f8dc102cd528e -title: Step 73 +title: Passo 73 challengeType: 0 dashedName: step-73 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d404259f512c1a9e86ac1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d404259f512c1a9e86ac1.md index 4c4688b222d..36102870bae 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d404259f512c1a9e86ac1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d404259f512c1a9e86ac1.md @@ -1,6 +1,6 @@ --- id: 646d404259f512c1a9e86ac1 -title: Step 74 +title: Passo 74 challengeType: 0 dashedName: step-74 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md index 74e2d8cb65a..97d9129df5d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md @@ -1,6 +1,6 @@ --- id: 646d40c543943ec250039682 -title: Step 77 +title: Passo 77 challengeType: 0 dashedName: step-77 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md index 0c59759a0d4..90ae2c9a494 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md @@ -1,6 +1,6 @@ --- id: 646d40fe4b7b50c30c2b4cd8 -title: Step 78 +title: Passo 78 challengeType: 0 dashedName: step-78 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md index 8ff3ed71911..fa173d7e64f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md @@ -1,6 +1,6 @@ --- id: 646d41e23b583fc3b8cc4579 -title: Step 79 +title: Passo 79 challengeType: 0 dashedName: step-79 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md index 9541d8237b5..384e738f899 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md @@ -1,6 +1,6 @@ --- id: 646d423fade4a9c4636acd13 -title: Step 80 +title: Passo 80 challengeType: 0 dashedName: step-80 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d42f58deb2fc52adc6611.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d42f58deb2fc52adc6611.md index 50de2dac239..70eedcd5c35 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d42f58deb2fc52adc6611.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d42f58deb2fc52adc6611.md @@ -1,6 +1,6 @@ --- id: 646d42f58deb2fc52adc6611 -title: Step 81 +title: Passo 81 challengeType: 0 dashedName: step-81 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md index 69a141aa12c..eb1b8e6efbb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md @@ -1,6 +1,6 @@ --- id: 646d43587d926bc5b6cb2e50 -title: Step 82 +title: Passo 82 challengeType: 0 dashedName: step-82 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d448479c8fdc8dcec868c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d448479c8fdc8dcec868c.md index 4cc4349a5dd..270f19acb89 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d448479c8fdc8dcec868c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d448479c8fdc8dcec868c.md @@ -1,6 +1,6 @@ --- id: 646d448479c8fdc8dcec868c -title: Step 83 +title: Passo 83 challengeType: 0 dashedName: step-83 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md index 6ea74e4919a..1543e5d123b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md @@ -1,6 +1,6 @@ --- id: 646d44da986f2bc9b72f5fe2 -title: Step 84 +title: Etapa 84 challengeType: 0 dashedName: step-84 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d451c2e44afca71b67818.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d451c2e44afca71b67818.md index 000410f7197..2b87fc3b631 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d451c2e44afca71b67818.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d451c2e44afca71b67818.md @@ -1,6 +1,6 @@ --- id: 646d451c2e44afca71b67818 -title: Step 85 +title: Passo 85 challengeType: 0 dashedName: step-85 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md index e75382734f7..97baed000a5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md @@ -1,6 +1,6 @@ --- id: 646d4554721d43cb19a68bc4 -title: Step 86 +title: Passo 86 challengeType: 0 dashedName: step-86 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45b739da5ecbf830c108.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45b739da5ecbf830c108.md index 711a4128abf..14200c51e5f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45b739da5ecbf830c108.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45b739da5ecbf830c108.md @@ -1,6 +1,6 @@ --- id: 646d45b739da5ecbf830c108 -title: Step 87 +title: Passo 87 challengeType: 0 dashedName: step-87 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md index 663d815fd08..31bf43ce2d7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md @@ -1,6 +1,6 @@ --- id: 646d45ee725632cca2555146 -title: Step 88 +title: Passo 88 challengeType: 0 dashedName: step-88 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md index 25e7ec3c559..7ecedd1a3b1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md @@ -1,6 +1,6 @@ --- id: 646d4626420eeecd51f241c2 -title: Step 89 +title: Passo 89 challengeType: 0 dashedName: step-89 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md index 754e68c44e3..75c5545a134 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md @@ -1,6 +1,6 @@ --- id: 646d467c6994f4ce0dc416a4 -title: Step 90 +title: Passo 90 challengeType: 0 dashedName: step-90 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md index 402f177f665..0bc5753aa7c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md @@ -1,6 +1,6 @@ --- id: 646d46c03e7d02cecb30f021 -title: Step 91 +title: Passo 91 challengeType: 0 dashedName: step-91 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md index f5e1f8a2c6b..e96e76884a8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md @@ -1,6 +1,6 @@ --- id: 646d4717a689e1cfa232e357 -title: Step 92 +title: Passo 92 challengeType: 0 dashedName: step-92 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4769ba65f1d05ef6b634.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4769ba65f1d05ef6b634.md index 3d28102cf40..18760fc9934 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4769ba65f1d05ef6b634.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4769ba65f1d05ef6b634.md @@ -1,6 +1,6 @@ --- id: 646d4769ba65f1d05ef6b634 -title: Step 93 +title: Passo 93 challengeType: 0 dashedName: step-93 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md index 176b757ce12..096daef5b0a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md @@ -1,6 +1,6 @@ --- id: 646d47c8f58107d10f1e5106 -title: Step 94 +title: Passo 94 challengeType: 0 dashedName: step-94 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md index dd34646a5bf..941c6c4e6d4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md @@ -1,6 +1,6 @@ --- id: 646d4813c17b37d1e261a566 -title: Step 95 +title: Passo 95 challengeType: 0 dashedName: step-95 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md index 83b7c1816e6..bd87b7e946d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md @@ -1,6 +1,6 @@ --- id: 646d486aec20f7d2a581cc36 -title: Step 96 +title: Passo 96 challengeType: 0 dashedName: step-96 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md index 0d39ec45a21..9690c2e3198 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md @@ -1,6 +1,6 @@ --- id: 646d48b936802fd34c3f05af -title: Step 97 +title: Passo 97 challengeType: 0 dashedName: step-97 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md index 9d9c3120545..6969c5e1f1d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md @@ -1,6 +1,6 @@ --- id: 646d498c8ebc31d3f753b22e -title: Step 98 +title: Passo 98 challengeType: 0 dashedName: step-98 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md index 9e4aaa5423f..1435cbd4aac 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md @@ -1,6 +1,6 @@ --- id: 646d49bfff9079d4b38df115 -title: Step 99 +title: Passo 99 challengeType: 0 dashedName: step-99 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a07a8fb14d55cd70e09.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a07a8fb14d55cd70e09.md index 7980f7cfbcf..309ea4158b0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a07a8fb14d55cd70e09.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a07a8fb14d55cd70e09.md @@ -1,6 +1,6 @@ --- id: 646d4a07a8fb14d55cd70e09 -title: Step 100 +title: Passo 100 challengeType: 0 dashedName: step-100 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a5b32a1cad6165df286.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a5b32a1cad6165df286.md index e60def897c9..83442a3d5f3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a5b32a1cad6165df286.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a5b32a1cad6165df286.md @@ -1,6 +1,6 @@ --- id: 646d4a5b32a1cad6165df286 -title: Step 102 +title: Passo 102 challengeType: 0 dashedName: step-102 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a8dbc04c6d6bb0001f8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a8dbc04c6d6bb0001f8.md index 32e7e76cd42..8f7906042d5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a8dbc04c6d6bb0001f8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a8dbc04c6d6bb0001f8.md @@ -1,6 +1,6 @@ --- id: 646d4a8dbc04c6d6bb0001f8 -title: Step 103 +title: Passo 103 challengeType: 0 dashedName: step-103 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md index 5c98ff3662a..c750aecf782 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md @@ -1,6 +1,6 @@ --- id: 646d4ab9b3b4c5d74fdd2154 -title: Step 104 +title: Passo 104 challengeType: 0 dashedName: step-104 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4b3d80ea98d824c8a4f9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4b3d80ea98d824c8a4f9.md index 0109445c02c..fc3a954a9b4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4b3d80ea98d824c8a4f9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4b3d80ea98d824c8a4f9.md @@ -1,6 +1,6 @@ --- id: 646d4b3d80ea98d824c8a4f9 -title: Step 105 +title: Passo 105 challengeType: 0 dashedName: step-105 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md index b3eb074689d..58f4a280102 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md @@ -1,6 +1,6 @@ --- id: 6491d38f5b09a021c4b5d5fe -title: Step 101 +title: Passo 101 challengeType: 0 dashedName: step-101 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/65ae458e23954c3469e0c209.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/65ae458e23954c3469e0c209.md index 3a606f8e1cf..a788d9550a1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/65ae458e23954c3469e0c209.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/65ae458e23954c3469e0c209.md @@ -1,6 +1,6 @@ --- id: 65ae458e23954c3469e0c209 -title: Step 18 +title: Passo 18 challengeType: 0 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/661f48f412d7631a1d9c30e6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/661f48f412d7631a1d9c30e6.md index 7c2489b5b09..b0ae6f0f498 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/661f48f412d7631a1d9c30e6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/661f48f412d7631a1d9c30e6.md @@ -1,6 +1,6 @@ --- id: 661f48f412d7631a1d9c30e6 -title: Step 75 +title: Passo 75 challengeType: 0 dashedName: step-75 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/661f49650572031c6ebdb8e3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/661f49650572031c6ebdb8e3.md index a36def51c9b..49c15b2d40c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/661f49650572031c6ebdb8e3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/661f49650572031c6ebdb8e3.md @@ -1,6 +1,6 @@ --- id: 661f49650572031c6ebdb8e3 -title: Step 76 +title: Passo 76 challengeType: 0 dashedName: step-76 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-algorithmic-thinking-by-building-a-dice-game/657e2ecee9f60092c89338d9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-algorithmic-thinking-by-building-a-dice-game/657e2ecee9f60092c89338d9.md index 3c34be33927..69ec05cc1ef 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-algorithmic-thinking-by-building-a-dice-game/657e2ecee9f60092c89338d9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-algorithmic-thinking-by-building-a-dice-game/657e2ecee9f60092c89338d9.md @@ -1,6 +1,6 @@ --- id: 657e2ecee9f60092c89338d9 -title: Step 85 +title: Passo 85 challengeType: 0 dashedName: step-85 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-algorithmic-thinking-by-building-a-dice-game/657e30e116d50c946b189925.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-algorithmic-thinking-by-building-a-dice-game/657e30e116d50c946b189925.md index c22e9b4456d..f80fcf7d151 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-algorithmic-thinking-by-building-a-dice-game/657e30e116d50c946b189925.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-algorithmic-thinking-by-building-a-dice-game/657e30e116d50c946b189925.md @@ -1,6 +1,6 @@ --- id: 657e30e116d50c946b189925 -title: Step 84 +title: Etapa 84 challengeType: 0 dashedName: step-84 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6482b4fef5fd6bcdfddad730.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6482b4fef5fd6bcdfddad730.md index 6128f1d17fb..90c3ed31745 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6482b4fef5fd6bcdfddad730.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6482b4fef5fd6bcdfddad730.md @@ -1,6 +1,6 @@ --- id: 6482b4fef5fd6bcdfddad730 -title: Step 12 +title: Etapa 12 challengeType: 0 dashedName: step-12 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6482bc5d699f0acfc52bdc41.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6482bc5d699f0acfc52bdc41.md index 8c296eb6c30..9797160f10c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6482bc5d699f0acfc52bdc41.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6482bc5d699f0acfc52bdc41.md @@ -1,6 +1,6 @@ --- id: 6482bc5d699f0acfc52bdc41 -title: Step 13 +title: Etapa 13 challengeType: 0 dashedName: step-13 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64861a8856e1eaf9e349570e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64861a8856e1eaf9e349570e.md index 12cfc0ac73b..0df551008e4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64861a8856e1eaf9e349570e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64861a8856e1eaf9e349570e.md @@ -1,6 +1,6 @@ --- id: 64861a8856e1eaf9e349570e -title: Step 14 +title: Passo 14 challengeType: 0 dashedName: step-14 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64861c02ff1ef4fa62a9e132.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64861c02ff1ef4fa62a9e132.md index 12fe1c37d51..6d7622429d3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64861c02ff1ef4fa62a9e132.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64861c02ff1ef4fa62a9e132.md @@ -1,6 +1,6 @@ --- id: 64861c02ff1ef4fa62a9e132 -title: Step 15 +title: Passo 15 challengeType: 0 dashedName: step-15 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6486212f80701cfb18052eae.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6486212f80701cfb18052eae.md index b951a3e6536..1e11217a5dc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6486212f80701cfb18052eae.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6486212f80701cfb18052eae.md @@ -1,6 +1,6 @@ --- id: 6486212f80701cfb18052eae -title: Step 16 +title: Passo 16 challengeType: 0 dashedName: step-16 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64862530b093dbfbea58f43d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64862530b093dbfbea58f43d.md index 4c8d4e75a7d..f63cde505aa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64862530b093dbfbea58f43d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64862530b093dbfbea58f43d.md @@ -1,6 +1,6 @@ --- id: 64862530b093dbfbea58f43d -title: Step 17 +title: Passo 17 challengeType: 0 dashedName: step-17 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6486282ca3a469fca6ebed27.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6486282ca3a469fca6ebed27.md index 9623313563f..9de6a3c2791 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6486282ca3a469fca6ebed27.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6486282ca3a469fca6ebed27.md @@ -1,6 +1,6 @@ --- id: 6486282ca3a469fca6ebed27 -title: Step 18 +title: Passo 18 challengeType: 0 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a6b393a10a4357087b3f7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a6b393a10a4357087b3f7.md index 210a0b94d90..f2b61f2420a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a6b393a10a4357087b3f7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a6b393a10a4357087b3f7.md @@ -1,6 +1,6 @@ --- id: 649a6b393a10a4357087b3f7 -title: Step 19 +title: Etapa 19 challengeType: 0 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a75a844f2ea3a0060d807.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a75a844f2ea3a0060d807.md index de522aed9d0..ef0ee227b1d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a75a844f2ea3a0060d807.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a75a844f2ea3a0060d807.md @@ -1,6 +1,6 @@ --- id: 649a75a844f2ea3a0060d807 -title: Step 20 +title: 20° passo challengeType: 0 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a80aa4405823b3f81a47f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a80aa4405823b3f81a47f.md index 09a6c46c14b..fc0adad4475 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a80aa4405823b3f81a47f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a80aa4405823b3f81a47f.md @@ -1,6 +1,6 @@ --- id: 649a80aa4405823b3f81a47f -title: Step 21 +title: Passo 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a845dccffd93c0d41ad4b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a845dccffd93c0d41ad4b.md index 33379e677b3..7c09fe090af 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a845dccffd93c0d41ad4b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a845dccffd93c0d41ad4b.md @@ -1,6 +1,6 @@ --- id: 649a845dccffd93c0d41ad4b -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a88458b4e343fbdffbbc0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a88458b4e343fbdffbbc0.md index 83a323889a9..b35a9af23a0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a88458b4e343fbdffbbc0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/649a88458b4e343fbdffbbc0.md @@ -1,6 +1,6 @@ --- id: 649a88458b4e343fbdffbbc0 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1d39230e33585f3dd0dae.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1d39230e33585f3dd0dae.md index cac4131d84c..124a5d0c389 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1d39230e33585f3dd0dae.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1d39230e33585f3dd0dae.md @@ -1,6 +1,6 @@ --- id: 64a1d39230e33585f3dd0dae -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1d86b1294b2869cef1c18.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1d86b1294b2869cef1c18.md index eb01b0e1575..3463bb58697 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1d86b1294b2869cef1c18.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1d86b1294b2869cef1c18.md @@ -1,6 +1,6 @@ --- id: 64a1d86b1294b2869cef1c18 -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1e1b74d2e4e019acb70b8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1e1b74d2e4e019acb70b8.md index 5e3a93aee81..a83bb91a38d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1e1b74d2e4e019acb70b8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1e1b74d2e4e019acb70b8.md @@ -1,6 +1,6 @@ --- id: 64a1e1b74d2e4e019acb70b8 -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1e54abad976028a8938f1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1e54abad976028a8938f1.md index 1e5ffcb96ab..36be6d7b433 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1e54abad976028a8938f1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1e54abad976028a8938f1.md @@ -1,6 +1,6 @@ --- id: 64a1e54abad976028a8938f1 -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1fdbf48e08b06e8b05870.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1fdbf48e08b06e8b05870.md index d2bd27ec59e..2388877c7bf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1fdbf48e08b06e8b05870.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a1fdbf48e08b06e8b05870.md @@ -1,6 +1,6 @@ --- id: 64a1fdbf48e08b06e8b05870 -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2cadabc8538152c49a7eb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2cadabc8538152c49a7eb.md index ff528b02d09..781a82b9ee7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2cadabc8538152c49a7eb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2cadabc8538152c49a7eb.md @@ -1,6 +1,6 @@ --- id: 64a2cadabc8538152c49a7eb -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2ceb58fe10e15e0dc223f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2ceb58fe10e15e0dc223f.md index dcb7da37dd0..3e60023a9c3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2ceb58fe10e15e0dc223f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2ceb58fe10e15e0dc223f.md @@ -1,6 +1,6 @@ --- id: 64a2ceb58fe10e15e0dc223f -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d19c5029ba166cb912e5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d19c5029ba166cb912e5.md index a09f0d04543..90bc19cea00 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d19c5029ba166cb912e5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d19c5029ba166cb912e5.md @@ -1,6 +1,6 @@ --- id: 64a2d19c5029ba166cb912e5 -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d5f23518e71727cac0db.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d5f23518e71727cac0db.md index a9c705c8ffc..7e56cb5092a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d5f23518e71727cac0db.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d5f23518e71727cac0db.md @@ -1,6 +1,6 @@ --- id: 64a2d5f23518e71727cac0db -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d86799a58517c29f79a5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d86799a58517c29f79a5.md index ea938883a6d..c8521c29fec 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d86799a58517c29f79a5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64a2d86799a58517c29f79a5.md @@ -1,6 +1,6 @@ --- id: 64a2d86799a58517c29f79a5 -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aaf2aff7f1fc7a550f40cb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aaf2aff7f1fc7a550f40cb.md index 7ad19036d5c..bda7d0bfc93 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aaf2aff7f1fc7a550f40cb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aaf2aff7f1fc7a550f40cb.md @@ -1,6 +1,6 @@ --- id: 64aaf2aff7f1fc7a550f40cb -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aaf83d46b16a7b20a27051.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aaf83d46b16a7b20a27051.md index ed9ddc2c4c4..ad2485eca74 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aaf83d46b16a7b20a27051.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aaf83d46b16a7b20a27051.md @@ -1,6 +1,6 @@ --- id: 64aaf83d46b16a7b20a27051 -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab0134716d0a7c8889f167.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab0134716d0a7c8889f167.md index fc3853e0f9f..aa774967ba1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab0134716d0a7c8889f167.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab0134716d0a7c8889f167.md @@ -1,6 +1,6 @@ --- id: 64ab0134716d0a7c8889f167 -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab06a9cc033b7d4a8bad2a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab06a9cc033b7d4a8bad2a.md index d76a4641d57..46585108709 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab06a9cc033b7d4a8bad2a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab06a9cc033b7d4a8bad2a.md @@ -1,6 +1,6 @@ --- id: 64ab06a9cc033b7d4a8bad2a -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab143edad72b7e25b23f8a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab143edad72b7e25b23f8a.md index 9542bb0ae4b..c52e972cf4a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab143edad72b7e25b23f8a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab143edad72b7e25b23f8a.md @@ -1,6 +1,6 @@ --- id: 64ab143edad72b7e25b23f8a -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab178206f3237eafcc0ef4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab178206f3237eafcc0ef4.md index 8d90b2e7567..6a87ad55601 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab178206f3237eafcc0ef4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64ab178206f3237eafcc0ef4.md @@ -1,6 +1,6 @@ --- id: 64ab178206f3237eafcc0ef4 -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acebecb7484c8c6a760534.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acebecb7484c8c6a760534.md index 584c0120446..3476f3eecd0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acebecb7484c8c6a760534.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acebecb7484c8c6a760534.md @@ -1,6 +1,6 @@ --- id: 64acebecb7484c8c6a760534 -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aced3e88b0a38cec824dea.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aced3e88b0a38cec824dea.md index 912088799f4..9ec097f6ea0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aced3e88b0a38cec824dea.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64aced3e88b0a38cec824dea.md @@ -1,6 +1,6 @@ --- id: 64aced3e88b0a38cec824dea -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acedb5f59c0c8d43e96aa4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acedb5f59c0c8d43e96aa4.md index d6b340e5910..15355cc14c6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acedb5f59c0c8d43e96aa4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acedb5f59c0c8d43e96aa4.md @@ -1,6 +1,6 @@ --- id: 64acedb5f59c0c8d43e96aa4 -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acf1af380a708ded8761f0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acf1af380a708ded8761f0.md index 2927aa25e15..a1be2e1ebd6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acf1af380a708ded8761f0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acf1af380a708ded8761f0.md @@ -1,6 +1,6 @@ --- id: 64acf1af380a708ded8761f0 -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acf287857bb38e6dd7ca69.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acf287857bb38e6dd7ca69.md index 8c47159e369..97e85369136 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acf287857bb38e6dd7ca69.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64acf287857bb38e6dd7ca69.md @@ -1,6 +1,6 @@ --- id: 64acf287857bb38e6dd7ca69 -title: Step 46 +title: Passo 46 challengeType: 0 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c703f58330b3767399e486.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c703f58330b3767399e486.md index dfa712b747e..7412091c032 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c703f58330b3767399e486.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c703f58330b3767399e486.md @@ -1,6 +1,6 @@ --- id: 64c703f58330b3767399e486 -title: Step 47 +title: Passo 47 challengeType: 0 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c705fd8969d677066792b8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c705fd8969d677066792b8.md index 50bb9396457..ed9dbe21d31 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c705fd8969d677066792b8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c705fd8969d677066792b8.md @@ -1,6 +1,6 @@ --- id: 64c705fd8969d677066792b8 -title: Step 48 +title: Passo 48 challengeType: 0 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c708fe06b0c3776f90faaf.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c708fe06b0c3776f90faaf.md index 7775d776164..6fde6d7179a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c708fe06b0c3776f90faaf.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c708fe06b0c3776f90faaf.md @@ -1,6 +1,6 @@ --- id: 64c708fe06b0c3776f90faaf -title: Step 49 +title: Passo 49 challengeType: 0 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c70d3bf7504978368da6ad.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c70d3bf7504978368da6ad.md index be95a9ed587..8456d0a1296 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c70d3bf7504978368da6ad.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c70d3bf7504978368da6ad.md @@ -1,6 +1,6 @@ --- id: 64c70d3bf7504978368da6ad -title: Step 50 +title: Passo 50 challengeType: 0 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c70f78dbf5667a307a7d90.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c70f78dbf5667a307a7d90.md index 5691cc79db6..0a484b91c04 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c70f78dbf5667a307a7d90.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c70f78dbf5667a307a7d90.md @@ -1,6 +1,6 @@ --- id: 64c70f78dbf5667a307a7d90 -title: Step 51 +title: Passo 51 challengeType: 0 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c71235eba6c67adaa9a458.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c71235eba6c67adaa9a458.md index 0bc62245d07..e284ef6e045 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c71235eba6c67adaa9a458.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c71235eba6c67adaa9a458.md @@ -1,6 +1,6 @@ --- id: 64c71235eba6c67adaa9a458 -title: Step 52 +title: Passo 52 challengeType: 0 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7135a9d35797b4bfb01b3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7135a9d35797b4bfb01b3.md index 55300bc8dd4..4fdb712fe9b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7135a9d35797b4bfb01b3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7135a9d35797b4bfb01b3.md @@ -1,6 +1,6 @@ --- id: 64c7135a9d35797b4bfb01b3 -title: Step 53 +title: Passo 53 challengeType: 0 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c714ec1b844f7bc0723deb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c714ec1b844f7bc0723deb.md index 14d3e8fa8f3..b82acbad17c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c714ec1b844f7bc0723deb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c714ec1b844f7bc0723deb.md @@ -1,6 +1,6 @@ --- id: 64c714ec1b844f7bc0723deb -title: Step 54 +title: Passo 54 challengeType: 0 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c715769bab5f7c14f6cd7b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c715769bab5f7c14f6cd7b.md index 5f6bbcc31bc..fad734cc947 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c715769bab5f7c14f6cd7b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c715769bab5f7c14f6cd7b.md @@ -1,6 +1,6 @@ --- id: 64c715769bab5f7c14f6cd7b -title: Step 55 +title: Passo 55 challengeType: 0 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7168cba4a4f7c90c26277.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7168cba4a4f7c90c26277.md index 18d20539301..e1c169d9880 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7168cba4a4f7c90c26277.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7168cba4a4f7c90c26277.md @@ -1,6 +1,6 @@ --- id: 64c7168cba4a4f7c90c26277 -title: Step 56 +title: Passo 56 challengeType: 0 dashedName: step-56 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7173772c2497ce99b474c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7173772c2497ce99b474c.md index 9a666bc6de2..508e870a797 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7173772c2497ce99b474c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7173772c2497ce99b474c.md @@ -1,6 +1,6 @@ --- id: 64c7173772c2497ce99b474c -title: Step 57 +title: Passo 57 challengeType: 0 dashedName: step-57 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7202620a5e17d8a3c777d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7202620a5e17d8a3c777d.md index ce28b2e7ee8..1da022b780a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7202620a5e17d8a3c777d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7202620a5e17d8a3c777d.md @@ -1,6 +1,6 @@ --- id: 64c7202620a5e17d8a3c777d -title: Step 58 +title: Passo 58 challengeType: 0 dashedName: step-58 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c72e52133d687e8e6a60f6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c72e52133d687e8e6a60f6.md index 7553b5a3bcf..d67cb744629 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c72e52133d687e8e6a60f6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c72e52133d687e8e6a60f6.md @@ -1,6 +1,6 @@ --- id: 64c72e52133d687e8e6a60f6 -title: Step 59 +title: Passo 59 challengeType: 0 dashedName: step-59 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73367cce78a7fd65dd3be.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73367cce78a7fd65dd3be.md index 6389d1b1bb3..eecedb5e057 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73367cce78a7fd65dd3be.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73367cce78a7fd65dd3be.md @@ -1,6 +1,6 @@ --- id: 64c73367cce78a7fd65dd3be -title: Step 60 +title: Passo 60 challengeType: 0 dashedName: step-60 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c734293def73808e609778.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c734293def73808e609778.md index 574dd40d018..5282c2adbc9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c734293def73808e609778.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c734293def73808e609778.md @@ -1,6 +1,6 @@ --- id: 64c734293def73808e609778 -title: Step 61 +title: Passo 61 challengeType: 0 dashedName: step-61 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c736a531835181349c27d2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c736a531835181349c27d2.md index 860719bde4d..d0e576f2431 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c736a531835181349c27d2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c736a531835181349c27d2.md @@ -1,6 +1,6 @@ --- id: 64c736a531835181349c27d2 -title: Step 62 +title: Passo 62 challengeType: 0 dashedName: step-62 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73981de025581bddb89eb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73981de025581bddb89eb.md index a8d5e05af40..4c09c8915dc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73981de025581bddb89eb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73981de025581bddb89eb.md @@ -1,6 +1,6 @@ --- id: 64c73981de025581bddb89eb -title: Step 63 +title: Passo 63 challengeType: 0 dashedName: step-63 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73df1424422832333a9fa.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73df1424422832333a9fa.md index a92a271963d..3746bd2cd33 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73df1424422832333a9fa.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c73df1424422832333a9fa.md @@ -1,6 +1,6 @@ --- id: 64c73df1424422832333a9fa -title: Step 64 +title: Passo 64 challengeType: 0 dashedName: step-64 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74a226587f502c0525927.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74a226587f502c0525927.md index 715d320b1fc..500d20e207c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74a226587f502c0525927.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74a226587f502c0525927.md @@ -1,6 +1,6 @@ --- id: 64c74a226587f502c0525927 -title: Step 65 +title: Passo 65 challengeType: 0 dashedName: step-65 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74a8a4138c6032241d498.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74a8a4138c6032241d498.md index d509d198ab4..796dcb7ff26 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74a8a4138c6032241d498.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74a8a4138c6032241d498.md @@ -1,6 +1,6 @@ --- id: 64c74a8a4138c6032241d498 -title: Step 66 +title: Passo 66 challengeType: 0 dashedName: step-66 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74c293dd7cf03cbd58194.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74c293dd7cf03cbd58194.md index 71ddeb1f7d1..ae001fb6585 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74c293dd7cf03cbd58194.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74c293dd7cf03cbd58194.md @@ -1,6 +1,6 @@ --- id: 64c74c293dd7cf03cbd58194 -title: Step 67 +title: Passo 67 challengeType: 0 dashedName: step-67 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74e0064a9080443af0796.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74e0064a9080443af0796.md index d36c032c925..e96eabb0e54 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74e0064a9080443af0796.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c74e0064a9080443af0796.md @@ -1,6 +1,6 @@ --- id: 64c74e0064a9080443af0796 -title: Step 68 +title: Passo 68 challengeType: 0 dashedName: step-68 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c750c328e06f0878a9272e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c750c328e06f0878a9272e.md index b2225896955..0a067391bdc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c750c328e06f0878a9272e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c750c328e06f0878a9272e.md @@ -1,6 +1,6 @@ --- id: 64c750c328e06f0878a9272e -title: Step 69 +title: Passo 69 challengeType: 0 dashedName: step-69 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7527100b19b09037ce5db.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7527100b19b09037ce5db.md index 4d164ba6adb..22a6934b63d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7527100b19b09037ce5db.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7527100b19b09037ce5db.md @@ -1,6 +1,6 @@ --- id: 64c7527100b19b09037ce5db -title: Step 70 +title: Passo 70 challengeType: 0 dashedName: step-70 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7538db3e33d09704ab148.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7538db3e33d09704ab148.md index f56783e00f9..7ad65d488a4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7538db3e33d09704ab148.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7538db3e33d09704ab148.md @@ -1,6 +1,6 @@ --- id: 64c7538db3e33d09704ab148 -title: Step 71 +title: Passo 71 challengeType: 0 dashedName: step-71 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c754f598ca5409d0a08884.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c754f598ca5409d0a08884.md index 4c086b317ea..1b9e64eed4d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c754f598ca5409d0a08884.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c754f598ca5409d0a08884.md @@ -1,6 +1,6 @@ --- id: 64c754f598ca5409d0a08884 -title: Step 72 +title: Passo 72 challengeType: 0 dashedName: step-72 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c755bf0034b20a428a4a1b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c755bf0034b20a428a4a1b.md index f4fd39bde3b..1cc5e875233 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c755bf0034b20a428a4a1b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c755bf0034b20a428a4a1b.md @@ -1,6 +1,6 @@ --- id: 64c755bf0034b20a428a4a1b -title: Step 73 +title: Passo 73 challengeType: 0 dashedName: step-73 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7561d44e2300a90a38ab6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7561d44e2300a90a38ab6.md index d263bdf54b3..1f01eecccd6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7561d44e2300a90a38ab6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7561d44e2300a90a38ab6.md @@ -1,6 +1,6 @@ --- id: 64c7561d44e2300a90a38ab6 -title: Step 74 +title: Passo 74 challengeType: 0 dashedName: step-74 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7573fd2265f0b1c77e2ec.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7573fd2265f0b1c77e2ec.md index 303311211d4..e90c962c17a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7573fd2265f0b1c77e2ec.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c7573fd2265f0b1c77e2ec.md @@ -1,6 +1,6 @@ --- id: 64c7573fd2265f0b1c77e2ec -title: Step 75 +title: Passo 75 challengeType: 0 dashedName: step-75 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c758ab7352130b775df8c4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c758ab7352130b775df8c4.md index e0e1e7204cc..078ee3c3cd4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c758ab7352130b775df8c4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c758ab7352130b775df8c4.md @@ -1,6 +1,6 @@ --- id: 64c758ab7352130b775df8c4 -title: Step 76 +title: Passo 76 challengeType: 0 dashedName: step-76 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c764dd9071050d0a2c1473.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c764dd9071050d0a2c1473.md index 545d5ddcd3d..877c1da4dab 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c764dd9071050d0a2c1473.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c764dd9071050d0a2c1473.md @@ -1,6 +1,6 @@ --- id: 64c764dd9071050d0a2c1473 -title: Step 77 +title: Passo 77 challengeType: 0 dashedName: step-77 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9bab6998128282da063f9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9bab6998128282da063f9.md index 01c426e728d..6a93d114ab7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9bab6998128282da063f9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9bab6998128282da063f9.md @@ -1,6 +1,6 @@ --- id: 64c9bab6998128282da063f9 -title: Step 78 +title: Passo 78 challengeType: 0 dashedName: step-78 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9db021d4d912906878f3a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9db021d4d912906878f3a.md index b024ff14621..0671eaa02e5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9db021d4d912906878f3a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9db021d4d912906878f3a.md @@ -1,6 +1,6 @@ --- id: 64c9db021d4d912906878f3a -title: Step 79 +title: Passo 79 challengeType: 0 dashedName: step-79 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9dc4bd63a92295347c449.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9dc4bd63a92295347c449.md index 638bb466729..bf4c8733442 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9dc4bd63a92295347c449.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9dc4bd63a92295347c449.md @@ -1,6 +1,6 @@ --- id: 64c9dc4bd63a92295347c449 -title: Step 80 +title: Passo 80 challengeType: 0 dashedName: step-80 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9e4cc5f06902dc75dc8f4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9e4cc5f06902dc75dc8f4.md index 0aa52253c4b..ecb4b262078 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9e4cc5f06902dc75dc8f4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9e4cc5f06902dc75dc8f4.md @@ -1,6 +1,6 @@ --- id: 64c9e4cc5f06902dc75dc8f4 -title: Step 81 +title: Passo 81 challengeType: 0 dashedName: step-81 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9e90c433fde2e870285a3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9e90c433fde2e870285a3.md index 2a72a101773..f1e85aedeb5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9e90c433fde2e870285a3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9e90c433fde2e870285a3.md @@ -1,6 +1,6 @@ --- id: 64c9e90c433fde2e870285a3 -title: Step 82 +title: Passo 82 challengeType: 0 dashedName: step-82 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9efea385ca536bf467a7c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9efea385ca536bf467a7c.md index f19e076fca6..09527a5d48c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9efea385ca536bf467a7c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9efea385ca536bf467a7c.md @@ -1,6 +1,6 @@ --- id: 64c9efea385ca536bf467a7c -title: Step 83 +title: Passo 83 challengeType: 0 dashedName: step-83 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9fa51209ab5395d524cce.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9fa51209ab5395d524cce.md index dc6d63565b3..e50a4e293bc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9fa51209ab5395d524cce.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9fa51209ab5395d524cce.md @@ -1,6 +1,6 @@ --- id: 64c9fa51209ab5395d524cce -title: Step 84 +title: Etapa 84 challengeType: 0 dashedName: step-84 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9fe7b2ffa3539fbf82d32.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9fe7b2ffa3539fbf82d32.md index a68f265ff2d..a2352f2feec 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9fe7b2ffa3539fbf82d32.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64c9fe7b2ffa3539fbf82d32.md @@ -1,6 +1,6 @@ --- id: 64c9fe7b2ffa3539fbf82d32 -title: Step 85 +title: Passo 85 challengeType: 0 dashedName: step-85 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cab4d06512c95234256cbb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cab4d06512c95234256cbb.md index 68c6175ebbf..9045afa4a8e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cab4d06512c95234256cbb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cab4d06512c95234256cbb.md @@ -1,6 +1,6 @@ --- id: 64cab4d06512c95234256cbb -title: Step 86 +title: Passo 86 challengeType: 0 dashedName: step-86 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caea41a4199e54253c60ca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caea41a4199e54253c60ca.md index a6b0501236d..687d147661a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caea41a4199e54253c60ca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caea41a4199e54253c60ca.md @@ -1,6 +1,6 @@ --- id: 64caea41a4199e54253c60ca -title: Step 87 +title: Passo 87 challengeType: 0 dashedName: step-87 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caeb134c3cdc5498cd75b9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caeb134c3cdc5498cd75b9.md index 7efda9045cc..2867ede7e73 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caeb134c3cdc5498cd75b9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caeb134c3cdc5498cd75b9.md @@ -1,6 +1,6 @@ --- id: 64caeb134c3cdc5498cd75b9 -title: Step 88 +title: Passo 88 challengeType: 0 dashedName: step-88 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caeeae2fa57756035d6012.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caeeae2fa57756035d6012.md index a4531f7b311..9b1ff3c004a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caeeae2fa57756035d6012.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caeeae2fa57756035d6012.md @@ -1,6 +1,6 @@ --- id: 64caeeae2fa57756035d6012 -title: Step 89 +title: Passo 89 challengeType: 0 dashedName: step-89 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caf1be15606d5814c3387b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caf1be15606d5814c3387b.md index 5874bb8eb4d..31db30e3096 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caf1be15606d5814c3387b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caf1be15606d5814c3387b.md @@ -1,6 +1,6 @@ --- id: 64caf1be15606d5814c3387b -title: Step 90 +title: Passo 90 challengeType: 0 dashedName: step-90 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caf237baef43587be6d860.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caf237baef43587be6d860.md index 28877ef405a..790a8323591 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caf237baef43587be6d860.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64caf237baef43587be6d860.md @@ -1,6 +1,6 @@ --- id: 64caf237baef43587be6d860 -title: Step 91 +title: Passo 91 challengeType: 0 dashedName: step-91 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb24c224ac2c61fa1c70aa.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb24c224ac2c61fa1c70aa.md index d7376bb2d78..6e00f60e215 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb24c224ac2c61fa1c70aa.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb24c224ac2c61fa1c70aa.md @@ -1,6 +1,6 @@ --- id: 64cb24c224ac2c61fa1c70aa -title: Step 92 +title: Passo 92 challengeType: 0 dashedName: step-92 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb262dd91ecc62998736af.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb262dd91ecc62998736af.md index 7fbf61939fb..bc489691691 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb262dd91ecc62998736af.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb262dd91ecc62998736af.md @@ -1,6 +1,6 @@ --- id: 64cb262dd91ecc62998736af -title: Step 93 +title: Passo 93 challengeType: 0 dashedName: step-93 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb26e84dd0b56313ba0c6e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb26e84dd0b56313ba0c6e.md index 9c4c2d9490f..30848398156 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb26e84dd0b56313ba0c6e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb26e84dd0b56313ba0c6e.md @@ -1,6 +1,6 @@ --- id: 64cb26e84dd0b56313ba0c6e -title: Step 94 +title: Passo 94 challengeType: 0 dashedName: step-94 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2a87057eb5655c66d1c2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2a87057eb5655c66d1c2.md index 2d4ad2dc17c..bd6a0cce753 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2a87057eb5655c66d1c2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2a87057eb5655c66d1c2.md @@ -1,6 +1,6 @@ --- id: 64cb2a87057eb5655c66d1c2 -title: Step 95 +title: Passo 95 challengeType: 0 dashedName: step-95 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2da32f8443669fd4e725.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2da32f8443669fd4e725.md index 882f5359853..3c8d41e8011 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2da32f8443669fd4e725.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2da32f8443669fd4e725.md @@ -1,6 +1,6 @@ --- id: 64cb2da32f8443669fd4e725 -title: Step 96 +title: Passo 96 challengeType: 0 dashedName: step-96 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2e5bdfb23a67272a07c7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2e5bdfb23a67272a07c7.md index 7fd53772aa9..4a6e2658a3e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2e5bdfb23a67272a07c7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2e5bdfb23a67272a07c7.md @@ -1,6 +1,6 @@ --- id: 64cb2e5bdfb23a67272a07c7 -title: Step 98 +title: Passo 98 challengeType: 0 dashedName: step-98 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2ff0c31b0f67a6d76a47.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2ff0c31b0f67a6d76a47.md index 00176126504..8bae462bc1b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2ff0c31b0f67a6d76a47.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb2ff0c31b0f67a6d76a47.md @@ -1,6 +1,6 @@ --- id: 64cb2ff0c31b0f67a6d76a47 -title: Step 99 +title: Passo 99 challengeType: 0 dashedName: step-99 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb30b8e4719a67fe14f364.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb30b8e4719a67fe14f364.md index 26fa7e4c5ab..9f940d27925 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb30b8e4719a67fe14f364.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb30b8e4719a67fe14f364.md @@ -1,6 +1,6 @@ --- id: 64cb30b8e4719a67fe14f364 -title: Step 100 +title: Passo 100 challengeType: 0 dashedName: step-100 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb34c01b3d856a9a59261d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb34c01b3d856a9a59261d.md index 1110cb36177..f069413ab0a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb34c01b3d856a9a59261d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb34c01b3d856a9a59261d.md @@ -1,6 +1,6 @@ --- id: 64cb34c01b3d856a9a59261d -title: Step 101 +title: Passo 101 challengeType: 0 dashedName: step-101 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb3f62b10c336bada1c70c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb3f62b10c336bada1c70c.md index 0f20baeab9a..789f188db07 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb3f62b10c336bada1c70c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb3f62b10c336bada1c70c.md @@ -1,6 +1,6 @@ --- id: 64cb3f62b10c336bada1c70c -title: Step 102 +title: Passo 102 challengeType: 0 dashedName: step-102 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md index d13a7eb5ed3..81e6ca7508b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md @@ -1,6 +1,6 @@ --- id: 64cb472593e3be6d10a7c13b -title: Step 103 +title: Passo 103 challengeType: 0 dashedName: step-103 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md index 6daf63db3d9..3f710c2eee4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md @@ -1,6 +1,6 @@ --- id: 64cb480723790d6d727b8ef5 -title: Step 104 +title: Passo 104 challengeType: 0 dashedName: step-104 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb48e36c9ad56dd7a523f4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb48e36c9ad56dd7a523f4.md index 9670a73667e..c8d04e4ed7f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb48e36c9ad56dd7a523f4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb48e36c9ad56dd7a523f4.md @@ -1,6 +1,6 @@ --- id: 64cb48e36c9ad56dd7a523f4 -title: Step 105 +title: Passo 105 challengeType: 0 dashedName: step-105 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4978631a4f6e3e1b964d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4978631a4f6e3e1b964d.md index 6428738ce89..0c760d5114a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4978631a4f6e3e1b964d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4978631a4f6e3e1b964d.md @@ -1,6 +1,6 @@ --- id: 64cb4978631a4f6e3e1b964d -title: Step 106 +title: Passo 106 challengeType: 0 dashedName: step-106 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4e676c156f7332f40db7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4e676c156f7332f40db7.md index e647743e443..ad721ed2bc0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4e676c156f7332f40db7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4e676c156f7332f40db7.md @@ -1,6 +1,6 @@ --- id: 64cb4e676c156f7332f40db7 -title: Step 107 +title: Passo 107 challengeType: 0 dashedName: step-107 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4ebdc75b3a73a43da5ec.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4ebdc75b3a73a43da5ec.md index c234fab590a..7f7029589c6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4ebdc75b3a73a43da5ec.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb4ebdc75b3a73a43da5ec.md @@ -1,6 +1,6 @@ --- id: 64cb4ebdc75b3a73a43da5ec -title: Step 108 +title: Passo 108 challengeType: 0 dashedName: step-108 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb50fd95831a745ea60d13.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb50fd95831a745ea60d13.md index 7739d08bdfc..9c09b5b4408 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb50fd95831a745ea60d13.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb50fd95831a745ea60d13.md @@ -1,6 +1,6 @@ --- id: 64cb50fd95831a745ea60d13 -title: Step 109 +title: Passo 109 challengeType: 0 dashedName: step-109 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb522509ffb274daf9fd9e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb522509ffb274daf9fd9e.md index be957205c33..0ace4672c70 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb522509ffb274daf9fd9e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb522509ffb274daf9fd9e.md @@ -1,6 +1,6 @@ --- id: 64cb522509ffb274daf9fd9e -title: Step 110 +title: Passo 110 challengeType: 0 dashedName: step-110 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb583dadb33a77595797bd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb583dadb33a77595797bd.md index d2904f5090e..98a3f1ba7a9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb583dadb33a77595797bd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb583dadb33a77595797bd.md @@ -1,6 +1,6 @@ --- id: 64cb583dadb33a77595797bd -title: Step 111 +title: Passo 111 challengeType: 0 dashedName: step-111 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb5d1d48532b79b4e7ef6c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb5d1d48532b79b4e7ef6c.md index b5af6d28b69..a12bca26cd3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb5d1d48532b79b4e7ef6c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb5d1d48532b79b4e7ef6c.md @@ -1,6 +1,6 @@ --- id: 64cb5d1d48532b79b4e7ef6c -title: Step 113 +title: Passo 113 challengeType: 0 dashedName: step-113 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6507512fe521de40085b8831.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6507512fe521de40085b8831.md index fd993364550..53e79ce7ecb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6507512fe521de40085b8831.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/6507512fe521de40085b8831.md @@ -1,6 +1,6 @@ --- id: 6507512fe521de40085b8831 -title: Step 114 +title: Passo 114 challengeType: 0 dashedName: step-114 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650755908a8071409ab9e09e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650755908a8071409ab9e09e.md index 051e7974e36..c7729f182f6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650755908a8071409ab9e09e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650755908a8071409ab9e09e.md @@ -1,6 +1,6 @@ --- id: 650755908a8071409ab9e09e -title: Step 115 +title: Passo 115 challengeType: 0 dashedName: step-115 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650756e20cffbe41305a0dde.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650756e20cffbe41305a0dde.md index 95438a380ba..0958cc42bd1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650756e20cffbe41305a0dde.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650756e20cffbe41305a0dde.md @@ -1,6 +1,6 @@ --- id: 650756e20cffbe41305a0dde -title: Step 116 +title: Passo 116 challengeType: 0 dashedName: step-116 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650757918a9e97418dc3d71a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650757918a9e97418dc3d71a.md index 47a4baf88f5..7ca146da18e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650757918a9e97418dc3d71a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/650757918a9e97418dc3d71a.md @@ -1,6 +1,6 @@ --- id: 650757918a9e97418dc3d71a -title: Step 117 +title: Passo 117 challengeType: 0 dashedName: step-117 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65afeb7ab6867b43dacbf32b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65afeb7ab6867b43dacbf32b.md index 19e346a10a1..fbfb93d79fb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65afeb7ab6867b43dacbf32b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65afeb7ab6867b43dacbf32b.md @@ -1,6 +1,6 @@ --- id: 65afeb7ab6867b43dacbf32b -title: Step 10 +title: Passo 10 challengeType: 0 dashedName: step-10 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65afec8f02423144ef136a94.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65afec8f02423144ef136a94.md index ddd05d3d82e..26b7da2524d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65afec8f02423144ef136a94.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65afec8f02423144ef136a94.md @@ -1,6 +1,6 @@ --- id: 65afec8f02423144ef136a94 -title: Step 11 +title: Passo 10 challengeType: 0 dashedName: step-11 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b006efc74c675c2bdfccba.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b006efc74c675c2bdfccba.md index 1bcb82deb8f..8c6d4b61b9d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b006efc74c675c2bdfccba.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b006efc74c675c2bdfccba.md @@ -1,6 +1,6 @@ --- id: 65b006efc74c675c2bdfccba -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b00a6f1c429c5e9fa50e90.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b00a6f1c429c5e9fa50e90.md index 8eb13834127..5e6522d6932 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b00a6f1c429c5e9fa50e90.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b00a6f1c429c5e9fa50e90.md @@ -1,6 +1,6 @@ --- id: 65b00a6f1c429c5e9fa50e90 -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b2a465d7ca3ab6e902285b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b2a465d7ca3ab6e902285b.md index 4c98c2d86fa..3e648723cd0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b2a465d7ca3ab6e902285b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b2a465d7ca3ab6e902285b.md @@ -1,6 +1,6 @@ --- id: 65b2a465d7ca3ab6e902285b -title: Step 97 +title: Passo 97 challengeType: 0 dashedName: step-97 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b2bb4c279af3cd585ba777.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b2bb4c279af3cd585ba777.md index cd225ffa47e..7bbea14ef5d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b2bb4c279af3cd585ba777.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/65b2bb4c279af3cd585ba777.md @@ -1,6 +1,6 @@ --- id: 65b2bb4c279af3cd585ba777 -title: Step 112 +title: Passo 112 challengeType: 0 dashedName: step-112 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index d90798583b0..b85717d36c9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,6 +1,6 @@ --- id: 660ee6e3a242da6bd579de69 -title: Step 1 +title: 1° passo challengeType: 1 dashedName: step-1 --- @@ -19,7 +19,7 @@ let hello; Variable naming follows specific rules: names can include letters, numbers, dollar signs, and underscores, but cannot contain spaces and must not begin with a number. -Declare a `character` variable in your code. +Use the `let` keyword to declare a variable called `character`. _Note_: It is common practice to end statements in JavaScript with a semicolon. `;` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index b7009681264..9f489b27b05 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,13 +1,13 @@ --- id: 660eebd83100d37862268781 -title: Step 2 +title: Passo 2 challengeType: 1 dashedName: step-2 --- # --description-- -Your `character` variable currently does not have a value. You can assign a value using the assignment operator `=`. For example: +Your `character` variable currently does not have a value. You can assign a value using the assignment operator `=`. Por exemplo: ```js let hello = "Hello"; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 64dd9635b30..01e3554e19a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,6 +1,6 @@ --- id: 660ef0f7c4b8e68ccd1f0786 -title: Step 3 +title: Passo 3 challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index 34a5eaaa68d..2a352718635 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,6 +1,6 @@ --- id: 660ef19b95d3308e7dd31bb6 -title: Step 4 +title: Passo 4 challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f12fda30f7e..f3d87987325 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,6 +1,6 @@ --- id: 660ef31a5be625914a0102cd -title: Step 5 +title: Passo 5 challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 22b6cecafa5..7eeabc507e5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,6 +1,6 @@ --- id: 660ef5105b8ba095307a0e50 -title: Step 6 +title: 6° passo challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index e517f2ea106..4a4ffaf82d1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,6 +1,6 @@ --- id: 660ef55dd468079679ee0092 -title: Step 11 +title: Passo 10 challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index 7093cf6efeb..f3169e14e52 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,13 +1,13 @@ --- id: 660ef5c1904955978a986a5c -title: Step 12 +title: Etapa 12 challengeType: 1 dashedName: step-12 --- # --description-- -Use `let` to declare a `count` variable. Assign it the number `8`. When using a number value, you do not use quotes. For example: +Use `let` to declare a `count` variable. Assign it the number `8`. When using a number value, you do not use quotes. Por exemplo: ```js let money = 100; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index 380b3321010..33164bdb350 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,6 +1,6 @@ --- id: 660ef6355e8f5a9e67fe5f46 -title: Step 13 +title: Etapa 13 challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index f9e8b518e3f..70574ffe028 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,6 +1,6 @@ --- id: 660ef857f2806aa626d29d17 -title: Step 14 +title: Passo 14 challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 1e76a1ff832..9df31210947 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,6 +1,6 @@ --- id: 660f033cf051ebb50ea3bf48 -title: Step 15 +title: Passo 15 challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index 24759bcc207..194f8d3788a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,6 +1,6 @@ --- id: 660f039ff313dbb696b007ca -title: Step 16 +title: Passo 16 challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 48cbab858f2..5df0f750b7a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,6 +1,6 @@ --- id: 660f061d259bbebc37461080 -title: Step 17 +title: Passo 17 challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index e90506c129f..bc622a5231b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,6 +1,6 @@ --- id: 660f07d231941bc11719f664 -title: Step 18 +title: Passo 18 challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index 12ab8985dcc..12065b52e04 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,6 +1,6 @@ --- id: 660f09a2694b59c3a10ee304 -title: Step 20 +title: 20° passo challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index af68df64b6d..372286b8c25 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,6 +1,6 @@ --- id: 660f0a55847d6cc485f29ba5 -title: Step 21 +title: Passo 21 challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index c9bb2d688dc..b15c41cfea7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,6 +1,6 @@ --- id: 660f0c34aad72dc712b97624 -title: Step 22 +title: Passo 22 challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 8511a7b4b45..06f3c475400 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,6 +1,6 @@ --- id: 660f0da9bf1035c9097af20a -title: Step 23 +title: Passo 23 challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index d20b5c8d29c..00902902a88 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,6 +1,6 @@ --- id: 660f0ee51d7460ce88cd248d -title: Step 24 +title: Passo 24 challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 60cfd2e1d12..fc05a246013 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,6 +1,6 @@ --- id: 660f0f980e98e8cf77f1ce31 -title: Step 25 +title: Passo 25 challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index 2ec1900af0f..411b082effd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,6 +1,6 @@ --- id: 660f165270622fd4ec0da3f7 -title: Step 26 +title: Etapa 26 challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f4487b76c34..79c6182c209 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,6 +1,6 @@ --- id: 660f17294346b7d69e79db3d -title: Step 27 +title: Passo 27 challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index ce1a52dbb25..d704e0e896e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,6 +1,6 @@ --- id: 660f17d4e9f227d86e834abd -title: Step 28 +title: Passo 28 challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index ca69260fcca..c80939121d2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,6 +1,6 @@ --- id: 660f18f059fe0fda192ce394 -title: Step 29 +title: Passo 29 challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index 388c05a182f..487885ee552 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,6 +1,6 @@ --- id: 660f1a00ac619ddc1e259a66 -title: Step 30 +title: Passo 30 challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 4ae0732ba75..69fade2da44 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,6 +1,6 @@ --- id: 660f1b6e60bd9edf902c81fd -title: Step 31 +title: Passo 31 challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index cd152530e94..e9ad068d61e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,6 +1,6 @@ --- id: 660f1bf673487ae0bb25b900 -title: Step 32 +title: Passo 32 challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 6762eef385c..e7b693e12ed 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,6 +1,6 @@ --- id: 660f1cedf3676fe26122ebf6 -title: Step 33 +title: Passo 33 challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 954bb008dc4..6eafeb865d4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,6 +1,6 @@ --- id: 660f1e3f047bf4e403268713 -title: Step 34 +title: Passo 34 challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index a0eef348dd2..de532b1979d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,6 +1,6 @@ --- id: 660f20473aef47e9b8c9afc6 -title: Step 35 +title: Passo 35 challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 9e0352a7cac..d777dac5f45 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,6 +1,6 @@ --- id: 660f207334fabaeac3269c38 -title: Step 36 +title: Passo 36 challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index e6374e08472..d2446080675 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,6 +1,6 @@ --- id: 660f229d2dbe09ef2954a4a1 -title: Step 37 +title: Passo 37 challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index d5940eef246..9e5abcac5df 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,6 +1,6 @@ --- id: 660f23b53db70af0f2620e78 -title: Step 38 +title: Passo 38 challengeType: 1 dashedName: step-38 --- @@ -9,7 +9,7 @@ dashedName: step-38 Now all of your numbers are appearing on the same line. This will not work for creating a pyramid. -You will need to add a new line to each row. However, pressing the return key to insert a line break between quotes in JavaScript will result in a parsing error. Instead, you need to use the special escape sequence `\n`, which is interpreted as a new line when the string is logged. For example: +You will need to add a new line to each row. However, pressing the return key to insert a line break between quotes in JavaScript will result in a parsing error. Instead, you need to use the special escape sequence `\n`, which is interpreted as a new line when the string is logged. Por exemplo: ```js lineOne = lineOne + "\n" + lineTwo; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index 55159888a3b..b020ef2bcb3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,6 +1,6 @@ --- id: 660f255022991ef34ed0ee88 -title: Step 39 +title: Passo 39 challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index 18acc8c7cd5..ab3809aa808 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,6 +1,6 @@ --- id: 660f280dda5040f707c76b4a -title: Step 40 +title: Passo 40 challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index 9d0151b5fab..aae580b8164 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,6 +1,6 @@ --- id: 660f2a70ad6225fa503e71c3 -title: Step 41 +title: Passo 41 challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index eae0762ef8f..ebf5fffebba 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,6 +1,6 @@ --- id: 660f2b6fd54ac1fc142804dd -title: Step 42 +title: Passo 42 challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index be7492b5d54..829599d4221 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,6 +1,6 @@ --- id: 660f2eccfe3f820304af1b39 -title: Step 57 +title: Passo 57 challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 2a0ebad4742..ce507aa2570 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,6 +1,6 @@ --- id: 660f2fbd45b520046cac68e8 -title: Step 58 +title: Passo 58 challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 0ca9b356dda..ba717e640fb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,6 +1,6 @@ --- id: 660f34626216270c682e2f7b -title: Step 59 +title: Passo 59 challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 9606352847e..a9b4278bb5d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,6 +1,6 @@ --- id: 660f34e99571070d56d2f231 -title: Step 60 +title: Passo 60 challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index fc54282905c..69a446801d5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,6 +1,6 @@ --- id: 660f359af3e32e0f1a6880b7 -title: Step 61 +title: Passo 61 challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index 37487b1771c..367738b4168 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,6 +1,6 @@ --- id: 660f374d532dc41189cc9cc2 -title: Step 62 +title: Passo 62 challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index f89d8c5731d..ce0bb4cb634 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,6 +1,6 @@ --- id: 660f383d4c772c12ff59904b -title: Step 63 +title: Passo 63 challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index 81240ad95db..a011b1cd953 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,6 +1,6 @@ --- id: 660f38c34a4de6141c0c369f -title: Step 64 +title: Passo 64 challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 1dc6448bd96..1e9f548ebd3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,6 +1,6 @@ --- id: 660f3915b41a441537ec9f5e -title: Step 65 +title: Passo 65 challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 7a855b66937..94d473e7cfa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,6 +1,6 @@ --- id: 660f39b444fd6f16d1e49c1f -title: Step 66 +title: Passo 66 challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c220049f343..35840e179bb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,6 +1,6 @@ --- id: 660f3b664421471aa595170f -title: Step 67 +title: Passo 67 challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index 52664bf7307..ecbdf39a9aa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,6 +1,6 @@ --- id: 660f3ba3cceef11b6ba08b59 -title: Step 68 +title: Passo 68 challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index 4170d3bd12b..afaf07cb0e7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,6 +1,6 @@ --- id: 660f3ce51f70571e1c5227c8 -title: Step 69 +title: Passo 69 challengeType: 1 dashedName: step-69 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 7a939244a7c..16633665bc9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,6 +1,6 @@ --- id: 660f3dd626be3a1ffe27e5d1 -title: Step 70 +title: Passo 70 challengeType: 1 dashedName: step-70 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index 4bca76985b6..69eec1e47e3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,6 +1,6 @@ --- id: 660f415b76859a2736771607 -title: Step 71 +title: Passo 71 challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 81f678e7801..527771ea1e2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,6 +1,6 @@ --- id: 660f4377a359972c521d3f4b -title: Step 72 +title: Passo 72 challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 14efb56149c..c09bac96e96 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,6 +1,6 @@ --- id: 660f4455f457ef2e3ec6920f -title: Step 73 +title: Passo 73 challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 56f8d30c3fe..ed94e015103 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,6 +1,6 @@ --- id: 660f447efc0e722f016c1be0 -title: Step 74 +title: Passo 74 challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..def6b52c6f0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Passo 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..44ce1f07d09 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Passo 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- @@ -19,7 +19,7 @@ Use that syntax to declare a `while` loop with `continueLoop` as the condition. # --hints-- -You should use a `while` loop. +Você deve usar um laço `while`. ```js assert.match(code, /while/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..abbc2d9176d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Passo 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..a5831df9bc5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Passo 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..db0afc98769 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Passo 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..000696fd45e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Passo 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..13ab076dd1e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Etapa 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..bc1cd38097e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Passo 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..3c4ec3f2694 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Passo 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..d7998615483 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Passo 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..5559fc23a7a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Passo 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..e2200eddea8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Passo 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..1cd66e74c69 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Passo 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..6dd0d840de9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Passo 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..08b92750bee 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Passo 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..5fbb45f48db 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Passo 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..57503585963 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Passo 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..44b3db7285e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Passo 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..878fa35d17f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Passo 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..f6700adeb2f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Passo 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..b06e49dc87b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Passo 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..35a225efea8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,13 +1,13 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Passo 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- -The `.unshift()` method of an array allows you to add a value to the **beginning** of the array, unlike `.push()` which adds the value at the end of the array. Here is an example: +The `.unshift()` method of an array allows you to add a value to the **beginning** of the array, unlike `.push()` which adds the value at the end of the array. Aqui está um exemplo: ```js const numbers = [1, 2, 3]; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..1bd5086648f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Passo 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..4ca8091b08d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Passo 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..5702b049bc2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Passo 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..17322594ebb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Passo 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..7b733479f80 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Passo 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..a507cda5aa8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Passo 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..66fc18eb531 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Passo 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..55673927164 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Passo 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..6f75a51458a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Passo 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..5b415f50008 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Passo 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..525b9c640f3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Passo 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index 7b352952215..86909e98f75 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,6 +1,6 @@ --- id: 6610b741b54b90f0c0fb3d58 -title: Step 7 +title: 7° passo challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 69250664a4e..df57bfa9e4e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,6 +1,6 @@ --- id: 6610b8017d1671f2814e8c77 -title: Step 8 +title: 8° passo challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index d5bb49f25d3..7f49a462ab1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,6 +1,6 @@ --- id: 6610b8f6a98d25f4d485a94d -title: Step 9 +title: 9° passo challengeType: 1 dashedName: step-9 --- @@ -9,7 +9,7 @@ dashedName: step-9 The default value of an uninitialized variable is `undefined`. This is a special data type that represents a value that does not have a definition yet. -You can still assign a value to an uninitialized variable. Here is an example: +You can still assign a value to an uninitialized variable. Exemplo: ```js let uninitialized; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 588c6b0a014..746f2cd9eea 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,13 +1,13 @@ --- id: 6610b9f7619764fad5fd516d -title: Step 10 +title: Passo 10 challengeType: 1 dashedName: step-10 --- # --description-- -You can also assign the value of a variable to another variable. For example: +You can also assign the value of a variable to another variable. Por exemplo: ```js let first = "One"; diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index eef17f600bd..fcadf6ee166 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,6 +1,6 @@ --- id: 6610bbed59bc2a0194d85533 -title: Step 19 +title: Etapa 19 challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..3680d085304 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Passo 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index e8689ccac1e..5ce358cc629 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,6 +1,6 @@ --- id: 6610c105bbdacc114d6cdc44 -title: Step 43 +title: Passo 43 challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index e2134be743a..325b8bcb987 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,6 +1,6 @@ --- id: 6610c16c4fa0df12c0e30675 -title: Step 44 +title: Passo 44 challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 78ddbdee8bc..5ae3f4ca252 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,6 +1,6 @@ --- id: 6610c1d97b1671140f95cfbb -title: Step 45 +title: Passo 45 challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index 4dd835f22b4..4e30f72892b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,6 +1,6 @@ --- id: 6610c21b3ef82015573ffbbe -title: Step 46 +title: Passo 46 challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 448303f9bfc..75b3ae67fc1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,6 +1,6 @@ --- id: 6610c2d8d67563174fcf96dc -title: Step 47 +title: Passo 47 challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index 6dfc38a32a2..ce8762821bf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,6 +1,6 @@ --- id: 6610c424b7119919b62932f4 -title: Step 48 +title: Passo 48 challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c966bf1f345..c072c73f843 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,6 +1,6 @@ --- id: 6610c48c4ea0891afa7c4696 -title: Step 49 +title: Passo 49 challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index 789e445e663..c31426d5622 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,6 +1,6 @@ --- id: 6610c538372aa61cc0f5b122 -title: Step 50 +title: Passo 50 challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 241450f3bed..f774d3cd0be 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,6 +1,6 @@ --- id: 6610c6541c82551f95e765ab -title: Step 51 +title: Passo 51 challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b60a3a05f01..2da807e114a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,6 +1,6 @@ --- id: 6610c71600966a2191d3a64a -title: Step 52 +title: Passo 52 challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 59feb5f6836..ad2fa8a6961 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,6 +1,6 @@ --- id: 6610c77d50636722e5b6be17 -title: Step 53 +title: Passo 53 challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 45b726efc4e..b33743b1592 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,6 +1,6 @@ --- id: 6610c83b52583e245a079217 -title: Step 54 +title: Passo 54 challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index e06471af2c3..c12ffb6cd8a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,6 +1,6 @@ --- id: 6610c87eac0f0b256d7b037e -title: Step 55 +title: Passo 55 challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 9d329e23bf8..57168ecb14e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,6 +1,6 @@ --- id: 6610c8cfe4cf4d278e35c156 -title: Step 56 +title: Passo 56 challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..c6e86a434d0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Passo 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..0b7ef297f0e --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Passo 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..3eb279981c7 --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Passo 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index eb385710e6a..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: Passo 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec89ee549ecf802de2b3e2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec89ee549ecf802de2b3e2.md index 9649085d8bb..feb48cc7b79 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec89ee549ecf802de2b3e2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec89ee549ecf802de2b3e2.md @@ -1,6 +1,6 @@ --- id: 64ec89ee549ecf802de2b3e2 -title: Step 19 +title: Etapa 19 challengeType: 0 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec8f717b261e824d82d6a5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec8f717b261e824d82d6a5.md index 5613737b5a9..1d553839d10 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec8f717b261e824d82d6a5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec8f717b261e824d82d6a5.md @@ -1,6 +1,6 @@ --- id: 64ec8f717b261e824d82d6a5 -title: Step 21 +title: Passo 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9145e424d8835a4e0f28.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9145e424d8835a4e0f28.md index 34655165bab..6afdb96e3da 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9145e424d8835a4e0f28.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9145e424d8835a4e0f28.md @@ -1,6 +1,6 @@ --- id: 64ec9145e424d8835a4e0f28 -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9282cd547785258cecf2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9282cd547785258cecf2.md index 5785ed8ce12..87d2debbaf1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9282cd547785258cecf2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9282cd547785258cecf2.md @@ -1,6 +1,6 @@ --- id: 64ec9282cd547785258cecf2 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9343769e8f85c1e17e05.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9343769e8f85c1e17e05.md index a6953783b8b..3d81a8d2955 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9343769e8f85c1e17e05.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9343769e8f85c1e17e05.md @@ -1,6 +1,6 @@ --- id: 64ec9343769e8f85c1e17e05 -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec94f0de20c086e09b0fc3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec94f0de20c086e09b0fc3.md index 9a30df0a382..76afc0f9cfb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec94f0de20c086e09b0fc3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec94f0de20c086e09b0fc3.md @@ -1,6 +1,6 @@ --- id: 64ec94f0de20c086e09b0fc3 -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec959a76336c8767f5cd4d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec959a76336c8767f5cd4d.md index 4535f1a4330..5eafb6f8979 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec959a76336c8767f5cd4d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec959a76336c8767f5cd4d.md @@ -1,6 +1,6 @@ --- id: 64ec959a76336c8767f5cd4d -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec96761156a187ed32b274.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec96761156a187ed32b274.md index 1f8aa88d063..b0749778b98 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec96761156a187ed32b274.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec96761156a187ed32b274.md @@ -1,6 +1,6 @@ --- id: 64ec96761156a187ed32b274 -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9b10356c2d8aa05d9ce1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9b10356c2d8aa05d9ce1.md index 241e953703b..dc1273052b6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9b10356c2d8aa05d9ce1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9b10356c2d8aa05d9ce1.md @@ -1,6 +1,6 @@ --- id: 64ec9b10356c2d8aa05d9ce1 -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9c55fdeef78bacd2fc3b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9c55fdeef78bacd2fc3b.md index 7662bf77fb7..e8c40abefa8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9c55fdeef78bacd2fc3b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ec9c55fdeef78bacd2fc3b.md @@ -1,6 +1,6 @@ --- id: 64ec9c55fdeef78bacd2fc3b -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac365aeb8ad70b69b366f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac365aeb8ad70b69b366f.md index eb2c13b9060..beca8dea782 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac365aeb8ad70b69b366f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac365aeb8ad70b69b366f.md @@ -1,6 +1,6 @@ --- id: 64fac365aeb8ad70b69b366f -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac4d1773e7a719b1254de.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac4d1773e7a719b1254de.md index f3eca73eccb..207f6de03cd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac4d1773e7a719b1254de.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac4d1773e7a719b1254de.md @@ -1,6 +1,6 @@ --- id: 64fac4d1773e7a719b1254de -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac6a497811572b338e5e5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac6a497811572b338e5e5.md index 9fbd9e349c8..4a658257d56 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac6a497811572b338e5e5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fac6a497811572b338e5e5.md @@ -1,6 +1,6 @@ --- id: 64fac6a497811572b338e5e5 -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faca774fd9fd74bc084cc9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faca774fd9fd74bc084cc9.md index 7c362ed3886..c1705156e8c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faca774fd9fd74bc084cc9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faca774fd9fd74bc084cc9.md @@ -1,6 +1,6 @@ --- id: 64faca774fd9fd74bc084cc9 -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64facf6180824876f70a2e86.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64facf6180824876f70a2e86.md index 4897cb4632e..57a82b4c281 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64facf6180824876f70a2e86.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64facf6180824876f70a2e86.md @@ -1,6 +1,6 @@ --- id: 64facf6180824876f70a2e86 -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad07f43a101779cb8692a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad07f43a101779cb8692a.md index 6d1d6a4a123..aa12d8aa5d4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad07f43a101779cb8692a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad07f43a101779cb8692a.md @@ -1,6 +1,6 @@ --- id: 64fad07f43a101779cb8692a -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md index 3685e705b05..437e82ffed9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md @@ -1,6 +1,6 @@ --- id: 64fad9cd2eeb1e7ca2ca8c8b -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadae4f2d51b7d5d8b98d8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadae4f2d51b7d5d8b98d8.md index 6bf77370368..2e5cf235276 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadae4f2d51b7d5d8b98d8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadae4f2d51b7d5d8b98d8.md @@ -1,6 +1,6 @@ --- id: 64fadae4f2d51b7d5d8b98d8 -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadff23375f27ff06c6d40.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadff23375f27ff06c6d40.md index 720ee71551c..b686a69d7b1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadff23375f27ff06c6d40.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadff23375f27ff06c6d40.md @@ -1,6 +1,6 @@ --- id: 64fadff23375f27ff06c6d40 -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fae068bcdc9c805bd8399e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fae068bcdc9c805bd8399e.md index b3b38f112dd..ebe16f882ea 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fae068bcdc9c805bd8399e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fae068bcdc9c805bd8399e.md @@ -1,6 +1,6 @@ --- id: 64fae068bcdc9c805bd8399e -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faedcd16a1e985c4c2dc94.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faedcd16a1e985c4c2dc94.md index 02fa4eb434d..fd97c6917cd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faedcd16a1e985c4c2dc94.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faedcd16a1e985c4c2dc94.md @@ -1,6 +1,6 @@ --- id: 64faedcd16a1e985c4c2dc94 -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf0418e828c0114a558a7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf0418e828c0114a558a7.md index 04c5178a070..363de90b7bf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf0418e828c0114a558a7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf0418e828c0114a558a7.md @@ -1,6 +1,6 @@ --- id: 64faf0418e828c0114a558a7 -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf65b22ad8d07df9be14d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf65b22ad8d07df9be14d.md index 143dc381933..1664021f063 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf65b22ad8d07df9be14d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf65b22ad8d07df9be14d.md @@ -1,6 +1,6 @@ --- id: 64faf65b22ad8d07df9be14d -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf874364ec308f875f636.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf874364ec308f875f636.md index fab0d84e5b2..a4a48ec0f51 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf874364ec308f875f636.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf874364ec308f875f636.md @@ -1,6 +1,6 @@ --- id: 64faf874364ec308f875f636 -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fafac95328110a69bcb75f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fafac95328110a69bcb75f.md index 6543bdcfc7e..d80737953e4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fafac95328110a69bcb75f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fafac95328110a69bcb75f.md @@ -1,6 +1,6 @@ --- id: 64fafac95328110a69bcb75f -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb0fa0968f2b113b2d90e9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb0fa0968f2b113b2d90e9.md index 80101e82bdc..cf6edcbf234 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb0fa0968f2b113b2d90e9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb0fa0968f2b113b2d90e9.md @@ -1,6 +1,6 @@ --- id: 64fb0fa0968f2b113b2d90e9 -title: Step 46 +title: Passo 46 challengeType: 0 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1061ca838611ed6a7d6b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1061ca838611ed6a7d6b.md index 04929cc0273..b3edf685c06 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1061ca838611ed6a7d6b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1061ca838611ed6a7d6b.md @@ -1,6 +1,6 @@ --- id: 64fb1061ca838611ed6a7d6b -title: Step 47 +title: Passo 47 challengeType: 0 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1321e189a6136d200f77.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1321e189a6136d200f77.md index 2a3eb98d8f0..8f19777df3b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1321e189a6136d200f77.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1321e189a6136d200f77.md @@ -1,6 +1,6 @@ --- id: 64fb1321e189a6136d200f77 -title: Step 48 +title: Passo 48 challengeType: 0 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1436adef3e145b4c3501.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1436adef3e145b4c3501.md index 6b939b4574d..429618e7ad1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1436adef3e145b4c3501.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1436adef3e145b4c3501.md @@ -1,6 +1,6 @@ --- id: 64fb1436adef3e145b4c3501 -title: Step 49 +title: Passo 49 challengeType: 0 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb14d890415c14f93069ce.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb14d890415c14f93069ce.md index 8b22220fdc9..3f47b611a1f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb14d890415c14f93069ce.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb14d890415c14f93069ce.md @@ -1,6 +1,6 @@ --- id: 64fb14d890415c14f93069ce -title: Step 50 +title: Passo 50 challengeType: 0 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb154a7c48cd159924bb18.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb154a7c48cd159924bb18.md index b2740a280c8..6487c43f341 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb154a7c48cd159924bb18.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb154a7c48cd159924bb18.md @@ -1,6 +1,6 @@ --- id: 64fb154a7c48cd159924bb18 -title: Step 51 +title: Passo 51 challengeType: 0 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1c4dc0feb219149a7c7d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1c4dc0feb219149a7c7d.md index 1bca79335e1..0b8a14fec1c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1c4dc0feb219149a7c7d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1c4dc0feb219149a7c7d.md @@ -1,6 +1,6 @@ --- id: 64fb1c4dc0feb219149a7c7d -title: Step 52 +title: Passo 52 challengeType: 0 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb285637fa1e1c222033e3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb285637fa1e1c222033e3.md index cb787162942..84826d2b06c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb285637fa1e1c222033e3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb285637fa1e1c222033e3.md @@ -1,6 +1,6 @@ --- id: 64fb285637fa1e1c222033e3 -title: Step 53 +title: Passo 53 challengeType: 0 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb29348a60361ccd45c1e2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb29348a60361ccd45c1e2.md index 53c055a2e6d..68b23febac4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb29348a60361ccd45c1e2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb29348a60361ccd45c1e2.md @@ -1,6 +1,6 @@ --- id: 64fb29348a60361ccd45c1e2 -title: Step 54 +title: Passo 54 challengeType: 0 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fefebad99209211ec30537.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fefebad99209211ec30537.md index 349a1226355..37c5bfded24 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fefebad99209211ec30537.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fefebad99209211ec30537.md @@ -1,6 +1,6 @@ --- id: 64fefebad99209211ec30537 -title: Step 55 +title: Passo 55 challengeType: 0 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff0313700dad264d19dfe4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff0313700dad264d19dfe4.md index 8c8c80db659..d9dcfef2f18 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff0313700dad264d19dfe4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff0313700dad264d19dfe4.md @@ -1,6 +1,6 @@ --- id: 64ff0313700dad264d19dfe4 -title: Step 56 +title: Passo 56 challengeType: 0 dashedName: step-56 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff04cc33779427a6412449.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff04cc33779427a6412449.md index 89f8f555a63..f90836008b7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff04cc33779427a6412449.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff04cc33779427a6412449.md @@ -1,6 +1,6 @@ --- id: 64ff04cc33779427a6412449 -title: Step 57 +title: Passo 57 challengeType: 0 dashedName: step-57 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff068e0426eb288874ed79.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff068e0426eb288874ed79.md index ae847c9b4ab..12c741543f6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff068e0426eb288874ed79.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff068e0426eb288874ed79.md @@ -1,6 +1,6 @@ --- id: 64ff068e0426eb288874ed79 -title: Step 58 +title: Passo 58 challengeType: 0 dashedName: step-58 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff23daf176a92de95f24dc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff23daf176a92de95f24dc.md index a69e6d3f98a..01a0c906148 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff23daf176a92de95f24dc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff23daf176a92de95f24dc.md @@ -1,6 +1,6 @@ --- id: 64ff23daf176a92de95f24dc -title: Step 59 +title: Passo 59 challengeType: 0 dashedName: step-59 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff24b80431f62ec6b93f65.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff24b80431f62ec6b93f65.md index 2d43ea0abaf..1b19fcedc32 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff24b80431f62ec6b93f65.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff24b80431f62ec6b93f65.md @@ -1,6 +1,6 @@ --- id: 64ff24b80431f62ec6b93f65 -title: Step 60 +title: Passo 60 challengeType: 0 dashedName: step-60 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65003986d17d1e1865b269c0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65003986d17d1e1865b269c0.md index defd194933a..e29698f698e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65003986d17d1e1865b269c0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65003986d17d1e1865b269c0.md @@ -1,6 +1,6 @@ --- id: 65003986d17d1e1865b269c0 -title: Step 61 +title: Passo 61 challengeType: 0 dashedName: step-61 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650046832f92c01a35834bca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650046832f92c01a35834bca.md index 1504db737a7..0865de401b0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650046832f92c01a35834bca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650046832f92c01a35834bca.md @@ -1,6 +1,6 @@ --- id: 650046832f92c01a35834bca -title: Step 62 +title: Passo 62 challengeType: 0 dashedName: step-62 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650048b0764f9c1b798200e2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650048b0764f9c1b798200e2.md index 2759f899e93..81e193b6332 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650048b0764f9c1b798200e2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650048b0764f9c1b798200e2.md @@ -1,6 +1,6 @@ --- id: 650048b0764f9c1b798200e2 -title: Step 63 +title: Passo 63 challengeType: 0 dashedName: step-63 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65004ba581d03d1d5628b41c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65004ba581d03d1d5628b41c.md index 304cbb31463..623cf0cc99e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65004ba581d03d1d5628b41c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65004ba581d03d1d5628b41c.md @@ -1,6 +1,6 @@ --- id: 65004ba581d03d1d5628b41c -title: Step 64 +title: Passo 64 challengeType: 0 dashedName: step-64 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index 05d06ab9b7b..e516ce70377 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -1,6 +1,6 @@ --- id: 650300a25b6f72964ab8aca6 -title: Step 18 +title: Passo 18 challengeType: 0 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65099dbd8f137d58e5c0ff16.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65099dbd8f137d58e5c0ff16.md index e1223fd9b03..1fd39baeaac 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65099dbd8f137d58e5c0ff16.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65099dbd8f137d58e5c0ff16.md @@ -1,6 +1,6 @@ --- id: 65099dbd8f137d58e5c0ff16 -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d86150a52ced178d567f3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d86150a52ced178d567f3.md index 432a02b4845..d41138b1489 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d86150a52ced178d567f3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d86150a52ced178d567f3.md @@ -1,6 +1,6 @@ --- id: 660d86150a52ced178d567f3 -title: Step 12 +title: Etapa 12 challengeType: 0 dashedName: step-12 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d8ca387f989d6b25a3343.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d8ca387f989d6b25a3343.md index ccd68403bf1..a3c516ef262 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d8ca387f989d6b25a3343.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d8ca387f989d6b25a3343.md @@ -1,6 +1,6 @@ --- id: 660d8ca387f989d6b25a3343 -title: Step 13 +title: Etapa 13 challengeType: 0 dashedName: step-13 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d8d7bb2424cd7cdf90ec1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d8d7bb2424cd7cdf90ec1.md index dcdef68c879..a9972a8af4a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d8d7bb2424cd7cdf90ec1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d8d7bb2424cd7cdf90ec1.md @@ -1,6 +1,6 @@ --- id: 660d8d7bb2424cd7cdf90ec1 -title: Step 14 +title: Passo 14 challengeType: 0 dashedName: step-14 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d90b0ec1ef7da914c5e65.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d90b0ec1ef7da914c5e65.md index ebe04b46f38..78840f62689 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d90b0ec1ef7da914c5e65.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d90b0ec1ef7da914c5e65.md @@ -1,6 +1,6 @@ --- id: 660d90b0ec1ef7da914c5e65 -title: Step 15 +title: Passo 15 challengeType: 0 dashedName: step-15 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d936a55565add0a27199b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d936a55565add0a27199b.md index c1f4aa85947..24ef0a190b7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d936a55565add0a27199b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d936a55565add0a27199b.md @@ -1,6 +1,6 @@ --- id: 660d936a55565add0a27199b -title: Step 16 +title: Passo 16 challengeType: 0 dashedName: step-16 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d9535e86fd2deb351aeb9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d9535e86fd2deb351aeb9.md index f2d7ad16b48..63f317d09f0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d9535e86fd2deb351aeb9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d9535e86fd2deb351aeb9.md @@ -1,6 +1,6 @@ --- id: 660d9535e86fd2deb351aeb9 -title: Step 17 +title: Passo 17 challengeType: 0 dashedName: step-17 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d9cb6cc6415e6ca0509d8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d9cb6cc6415e6ca0509d8.md index 542b2845a94..6b7c19ec0c0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d9cb6cc6415e6ca0509d8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/660d9cb6cc6415e6ca0509d8.md @@ -1,6 +1,6 @@ --- id: 660d9cb6cc6415e6ca0509d8 -title: Step 20 +title: 20° passo challengeType: 0 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/6632420f81f3cc554a5e540b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/6632420f81f3cc554a5e540b.md index 8f2a57bf4e0..7fbe29284e3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/6632420f81f3cc554a5e540b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/6632420f81f3cc554a5e540b.md @@ -1,6 +1,6 @@ --- id: 6632420f81f3cc554a5e540b -title: Step 65 +title: Passo 65 challengeType: 0 dashedName: step-65 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index 4a2596792a5..00000000000 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: Passo 15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -Para verificar se o método `Object.freeze()` está funcionando, você pode tentar atribuir um novo valor a uma das propriedades existentes. - -Abaixo de `Object.freeze(myFavoriteFootballTeam)`, atribua a string `USA` a `myFavoriteFootballTeam.team`. Abaixo disso, adicione um `console.log` que exiba `myFavoriteFootballTeam.team`. - -Ao abrir o console, você verá a mensagem `Uncaught TypeError`. Esse erro aparece porque o método `Object.freeze()` não permite que você sobrescreva o valor. - -# --hints-- - -Você deve atribuir a string `USA` a `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -Você deve adicionar um `console.log` que exiba `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e02a333354343b595d64ca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e02a333354343b595d64ca.md index 010f5dae40d..b7270e4ad34 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e02a333354343b595d64ca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e02a333354343b595d64ca.md @@ -1,6 +1,6 @@ --- id: 63e02a333354343b595d64ca -title: Step 15 +title: Passo 15 challengeType: 0 dashedName: step-15 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e0334b7a24bd3c96aca4de.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e0334b7a24bd3c96aca4de.md index 64e95bd52dd..3d4388ada08 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e0334b7a24bd3c96aca4de.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e0334b7a24bd3c96aca4de.md @@ -1,6 +1,6 @@ --- id: 63e0334b7a24bd3c96aca4de -title: Step 16 +title: Passo 16 challengeType: 0 dashedName: step-16 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e036373fc9173d284e165a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e036373fc9173d284e165a.md index 761d4915f22..a4fa5d4be55 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e036373fc9173d284e165a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e036373fc9173d284e165a.md @@ -1,6 +1,6 @@ --- id: 63e036373fc9173d284e165a -title: Step 17 +title: Passo 17 challengeType: 0 dashedName: step-17 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e03b86008bbb3e1c3de846.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e03b86008bbb3e1c3de846.md index bf76fb9169f..15da1f3cab0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e03b86008bbb3e1c3de846.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e03b86008bbb3e1c3de846.md @@ -1,6 +1,6 @@ --- id: 63e03b86008bbb3e1c3de846 -title: Step 18 +title: Passo 18 challengeType: 0 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e042661ad2663f0d468740.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e042661ad2663f0d468740.md index 702cbe1f917..2699a2dfc29 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e042661ad2663f0d468740.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e042661ad2663f0d468740.md @@ -1,6 +1,6 @@ --- id: 63e042661ad2663f0d468740 -title: Step 19 +title: Etapa 19 challengeType: 0 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e050bf935ac341b88326d6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e050bf935ac341b88326d6.md index dbbb0d3f13d..b5bae4703c8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e050bf935ac341b88326d6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e050bf935ac341b88326d6.md @@ -1,6 +1,6 @@ --- id: 63e050bf935ac341b88326d6 -title: Step 20 +title: 20° passo challengeType: 0 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e05557016dfd45ea49152c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e05557016dfd45ea49152c.md index 3562608e3f9..cac4815f53b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e05557016dfd45ea49152c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e05557016dfd45ea49152c.md @@ -1,6 +1,6 @@ --- id: 63e05557016dfd45ea49152c -title: Step 21 +title: Passo 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e05c00b615bb46ac87273a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e05c00b615bb46ac87273a.md index 70772e4cba9..042ff334b5a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e05c00b615bb46ac87273a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e05c00b615bb46ac87273a.md @@ -1,6 +1,6 @@ --- id: 63e05c00b615bb46ac87273a -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e060df21bca347b2d2b374.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e060df21bca347b2d2b374.md index 1f3d7585f20..a7cc64e9c6b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e060df21bca347b2d2b374.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e060df21bca347b2d2b374.md @@ -1,6 +1,6 @@ --- id: 63e060df21bca347b2d2b374 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e062d6090ebb486a4eda3a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e062d6090ebb486a4eda3a.md index d78b12ff32b..b59628e9406 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e062d6090ebb486a4eda3a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e062d6090ebb486a4eda3a.md @@ -1,6 +1,6 @@ --- id: 63e062d6090ebb486a4eda3a -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e949b8327aa2aca2ca8eac.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e949b8327aa2aca2ca8eac.md index 32b3754dfed..8fc97fd3144 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e949b8327aa2aca2ca8eac.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e949b8327aa2aca2ca8eac.md @@ -1,6 +1,6 @@ --- id: 63e949b8327aa2aca2ca8eac -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e94dae6dcedbad73f2f6ee.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e94dae6dcedbad73f2f6ee.md index 324d7dcf7c5..19f93d1568e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e94dae6dcedbad73f2f6ee.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e94dae6dcedbad73f2f6ee.md @@ -1,6 +1,6 @@ --- id: 63e94dae6dcedbad73f2f6ee -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e954321b0a77ae4f6d9650.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e954321b0a77ae4f6d9650.md index f565db4eaba..631a350ad51 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e954321b0a77ae4f6d9650.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e954321b0a77ae4f6d9650.md @@ -1,6 +1,6 @@ --- id: 63e954321b0a77ae4f6d9650 -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e95a45dce95baf41dd4f78.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e95a45dce95baf41dd4f78.md index bf772795e61..6869f56e902 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e95a45dce95baf41dd4f78.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e95a45dce95baf41dd4f78.md @@ -1,6 +1,6 @@ --- id: 63e95a45dce95baf41dd4f78 -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e95e39860dc5b01ebe9be0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e95e39860dc5b01ebe9be0.md index 167bbdf1b1a..90c14d43e4c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e95e39860dc5b01ebe9be0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e95e39860dc5b01ebe9be0.md @@ -1,6 +1,6 @@ --- id: 63e95e39860dc5b01ebe9be0 -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9667c881b61b1e338d276.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9667c881b61b1e338d276.md index 13ade9340b5..418bb624eff 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9667c881b61b1e338d276.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9667c881b61b1e338d276.md @@ -1,6 +1,6 @@ --- id: 63e9667c881b61b1e338d276 -title: Step 30 +title: Passo 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e96938d2a347b2734a1587.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e96938d2a347b2734a1587.md index 3e7e3808e64..f370dddfe11 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e96938d2a347b2734a1587.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e96938d2a347b2734a1587.md @@ -1,6 +1,6 @@ --- id: 63e96938d2a347b2734a1587 -title: Step 31 +title: Passo 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e96eb94c97b6b31ee50f63.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e96eb94c97b6b31ee50f63.md index 2f2359be581..7049142a44b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e96eb94c97b6b31ee50f63.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e96eb94c97b6b31ee50f63.md @@ -1,6 +1,6 @@ --- id: 63e96eb94c97b6b31ee50f63 -title: Step 32 +title: Passo 32 challengeType: 0 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9718d7d490bb3940d5a0a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9718d7d490bb3940d5a0a.md index c655c06a7db..3f568028b34 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9718d7d490bb3940d5a0a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9718d7d490bb3940d5a0a.md @@ -1,6 +1,6 @@ --- id: 63e9718d7d490bb3940d5a0a -title: Step 33 +title: Passo 33 challengeType: 0 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9737f686c76b4078a60f4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9737f686c76b4078a60f4.md index a121eadf017..b709853dcfc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9737f686c76b4078a60f4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63e9737f686c76b4078a60f4.md @@ -1,6 +1,6 @@ --- id: 63e9737f686c76b4078a60f4 -title: Step 34 +title: Passo 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f28972973504e7bb58b0b3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f28972973504e7bb58b0b3.md index b8b790281c2..30bbcb385d9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f28972973504e7bb58b0b3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f28972973504e7bb58b0b3.md @@ -1,6 +1,6 @@ --- id: 63f28972973504e7bb58b0b3 -title: Step 35 +title: Passo 35 challengeType: 0 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f28ef082d771e8bf71f94a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f28ef082d771e8bf71f94a.md index 0fd365031bc..f3b909878b7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f28ef082d771e8bf71f94a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f28ef082d771e8bf71f94a.md @@ -1,6 +1,6 @@ --- id: 63f28ef082d771e8bf71f94a -title: Step 36 +title: Passo 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f293c804d6f9e9a83ca4c5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f293c804d6f9e9a83ca4c5.md index 4f0d8dd1f1d..0ca984bd1b5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f293c804d6f9e9a83ca4c5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f293c804d6f9e9a83ca4c5.md @@ -1,6 +1,6 @@ --- id: 63f293c804d6f9e9a83ca4c5 -title: Step 37 +title: Passo 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f29804e3ec00ea6fab1ec4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f29804e3ec00ea6fab1ec4.md index a09736dc6d8..722ec800002 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f29804e3ec00ea6fab1ec4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f29804e3ec00ea6fab1ec4.md @@ -1,6 +1,6 @@ --- id: 63f29804e3ec00ea6fab1ec4 -title: Step 38 +title: Passo 38 challengeType: 0 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f29ce62aea65eb041758c8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f29ce62aea65eb041758c8.md index 5bedf467924..63ea1518d7a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f29ce62aea65eb041758c8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f29ce62aea65eb041758c8.md @@ -1,6 +1,6 @@ --- id: 63f29ce62aea65eb041758c8 -title: Step 39 +title: Passo 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a0a860790eebe61bf908.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a0a860790eebe61bf908.md index 48c69930818..ffefc08de00 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a0a860790eebe61bf908.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a0a860790eebe61bf908.md @@ -1,6 +1,6 @@ --- id: 63f2a0a860790eebe61bf908 -title: Step 40 +title: Passo 40 challengeType: 0 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a4a8087e6dec8ec47f16.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a4a8087e6dec8ec47f16.md index 922084321c4..07939232fd9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a4a8087e6dec8ec47f16.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a4a8087e6dec8ec47f16.md @@ -1,6 +1,6 @@ --- id: 63f2a4a8087e6dec8ec47f16 -title: Step 43 +title: Passo 43 challengeType: 0 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a5f09a785aed155c0a56.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a5f09a785aed155c0a56.md index 7f1671be226..06d4b73b1d9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a5f09a785aed155c0a56.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a5f09a785aed155c0a56.md @@ -1,6 +1,6 @@ --- id: 63f2a5f09a785aed155c0a56 -title: Step 44 +title: Passo 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a8e14fb388edd3242527.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a8e14fb388edd3242527.md index 1f3e26ae640..3de36cff1d9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a8e14fb388edd3242527.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2a8e14fb388edd3242527.md @@ -1,6 +1,6 @@ --- id: 63f2a8e14fb388edd3242527 -title: Step 45 +title: Passo 45 challengeType: 0 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2aa36fcdc63ee4e18fc37.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2aa36fcdc63ee4e18fc37.md index 524ce1e0747..2e733963e99 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2aa36fcdc63ee4e18fc37.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2aa36fcdc63ee4e18fc37.md @@ -1,6 +1,6 @@ --- id: 63f2aa36fcdc63ee4e18fc37 -title: Step 46 +title: Passo 46 challengeType: 0 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2ab4f6c52c5eec6d68de4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2ab4f6c52c5eec6d68de4.md index a2de1f81af9..964243f02fd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2ab4f6c52c5eec6d68de4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63f2ab4f6c52c5eec6d68de4.md @@ -1,6 +1,6 @@ --- id: 63f2ab4f6c52c5eec6d68de4 -title: Step 47 +title: Passo 47 challengeType: 0 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/641fc88d8fa7127f76e0324f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/641fc88d8fa7127f76e0324f.md index 7c5f2613738..3b750c2bf01 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/641fc88d8fa7127f76e0324f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/641fc88d8fa7127f76e0324f.md @@ -1,6 +1,6 @@ --- id: 641fc88d8fa7127f76e0324f -title: Step 41 +title: Passo 41 challengeType: 0 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/641fcfd468185384ac218b7d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/641fcfd468185384ac218b7d.md index be632a4209c..182b3f68321 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/641fcfd468185384ac218b7d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/641fcfd468185384ac218b7d.md @@ -1,6 +1,6 @@ --- id: 641fcfd468185384ac218b7d -title: Step 42 +title: Passo 42 challengeType: 0 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index da1e28f5a35..a462e207a9a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index 22fa212c719..fef8c68d1ec 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index e37e1c60aa7..8453bb67bc3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index 6ee0c658e56..7f4e469fd7d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index 7a2868992a3..a948a3abe97 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index ee1b02b9e6f..7a09efd1571 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index 7c620e15de3..9462c119da6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index 43aa68f60d7..cc6c1b52ff3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index abad6fb2239..acc1689a842 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index 633372d121e..5eec46feabf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index 72333303dda..86b7e2bbed7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index 079ec3e11e0..bf15ebae5f3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index 4a831ca6b46..d8a174bfb4b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index 0e83559293d..57895faab22 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index 49a18923179..b6e57a6cd1f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index 1f9f02e3b6c..cd9926d8641 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index 76ec0bdb45f..d69c258aadd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index b866b63cc13..20a4a5bb72a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index 9dd22ee4563..a375f3e2d2a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index 0aa5f823400..183f603db5c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index d642efea120..d064775b78c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index dc016f9af28..34cd9671d29 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index 952b4130c16..12e7023a9b7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index 17ef64f5696..9eacf5f9068 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index 99c89b68382..37b8d24735d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index 576702519b2..2735d7ca66c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index 9402490339b..2a2f41b15d7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 7f187a0fbcf..41c5e183cfb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index d7534cf966c..58a76fdb970 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index c6e51b17132..b14ac40ed13 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index 02e36d17adb..284a5860b3d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index 8f2cb034799..acc1749cae5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index ee04f0b30fc..71cd43a0092 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index 2d0d62f21f1..f28f3ee560d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index f2b5cd4987b..72cde7c6095 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index 9df0b1b97e4..e4572e02ee1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index 900906d2e00..7209ca745ad 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index 5fbc8b30693..45e50964b39 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index 822e86faf6d..1abc9d464bd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index 1d9da68172f..feb36578bb4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index 2e0c8d375f7..77cb5de9b2c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index 101ce8121fa..22c1b49b79c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index fc1b5606294..e26a7608549 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index 59f6dd6f44a..deb21a0b8aa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 7dd60ec29d2..add4f0cb19b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index bda643766eb..7b634765e77 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index 2bd6577fbcf..6f149af1f22 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index 6285d2762e2..5399b434a06 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index c7958b14f31..8d06028cb6b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index 7af32da9a20..9884e1fc28f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index f7f10aceb8d..a86393259b8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 8d49de58374..8bed71c60e7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index e68eda64a9c..a5f4aca84dc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 4e5e147af02..7ebd7b22680 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index 1d193d925bd..9141f08cdaf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index fbadaaac97f..0e929e52899 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index 0a157a61420..5200d939f99 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index 603f9f96267..9743e57b3c1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index 8d8563c31d2..1aa93a1c247 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index 3117ab3abb9..7f7e89eb26d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index 4c2deaebc6f..243a9585991 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index bc4e75a1b5a..1ee27312646 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index dc811a1efbb..8afc90634e4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index 7dba38d1916..29801aca36f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index 1a13c22cbff..5fd1376b23f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index 5869684a20a..091770c9f1d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index 06527e7de58..716ca7979a2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index d08624a3c02..180b2f482df 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index 5b5e3f8729a..3965ba9e7a3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index 184449a8762..aef8d03eb28 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index d09128ff717..59138bc78dd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index 0e4eeb5d730..fcb39dffe2a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 9c2099649cb..629ff544229 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index 95402061bad..874d725fb03 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index 626d550fdd3..073310d534f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index 67bc15925e0..827906bd529 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index 22fe5bc91bf..3f4b8c32a9d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index d4360f154fd..0be644ec4c8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index 61e5e81c392..f2ceca86a1c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index 8009415ca2e..e0bda398a56 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 2518e673bb4..6307368c395 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index c223cff307d..6076d9e09a0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index 39539a83de1..6587ddfedde 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index 40d1ce96c55..613c62c61a3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index 19a95bea4b9..625fda5f50b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index 23797f58a7c..2e392a02c60 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index 7e143ed5748..f6420dc85ce 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index 542b2af4271..c89990d7136 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index 6178d344d62..d582624872f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 9a480da5660..103c3fe2b19 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index e83d9225412..6f722db5017 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index 03de8b734cd..268acad7f51 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index dfab69bbfe0..72533332c16 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index 9f7c41f9a52..a69e7a60af6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index 09a6b2d6d86..b7188389fc7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index c29a030de42..45886777220 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index 809495fcce7..5b6551f7d51 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index f5b889ecf52..4866fe82853 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index dcd2bd7d193..b70602bef2f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389211a8d86bbd876a2a74.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389211a8d86bbd876a2a74.md index 0b500c14bca..e8c183e8096 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389211a8d86bbd876a2a74.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389211a8d86bbd876a2a74.md @@ -1,6 +1,6 @@ --- id: 65389211a8d86bbd876a2a74 -title: Step 23 +title: Passo 23 challengeType: 0 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389306578c34be5c93bc35.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389306578c34be5c93bc35.md index 982a6c784e2..b981c989818 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389306578c34be5c93bc35.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389306578c34be5c93bc35.md @@ -1,6 +1,6 @@ --- id: 65389306578c34be5c93bc35 -title: Step 24 +title: Passo 24 challengeType: 0 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/6538935e2ab721beedb137c4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/6538935e2ab721beedb137c4.md index 918a6df714b..deeb59941a3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/6538935e2ab721beedb137c4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/6538935e2ab721beedb137c4.md @@ -1,6 +1,6 @@ --- id: 6538935e2ab721beedb137c4 -title: Step 25 +title: Passo 25 challengeType: 0 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/653898fa7eee37c57b960e35.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/653898fa7eee37c57b960e35.md index 09062d66b24..6d51c958595 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/653898fa7eee37c57b960e35.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/653898fa7eee37c57b960e35.md @@ -1,6 +1,6 @@ --- id: 653898fa7eee37c57b960e35 -title: Step 26 +title: Etapa 26 challengeType: 0 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389a63d3b1d6c764c0e10e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389a63d3b1d6c764c0e10e.md index ec2be7c5c0b..04cc331c326 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389a63d3b1d6c764c0e10e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389a63d3b1d6c764c0e10e.md @@ -1,6 +1,6 @@ --- id: 65389a63d3b1d6c764c0e10e -title: Step 27 +title: Passo 27 challengeType: 0 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389de504d0f2ca10e92a57.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389de504d0f2ca10e92a57.md index a77befa5e59..248db875e6f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389de504d0f2ca10e92a57.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389de504d0f2ca10e92a57.md @@ -1,6 +1,6 @@ --- id: 65389de504d0f2ca10e92a57 -title: Step 28 +title: Passo 28 challengeType: 0 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389eff4893facbbe6eae67.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389eff4893facbbe6eae67.md index edd3080998e..bab2b32520e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389eff4893facbbe6eae67.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/65389eff4893facbbe6eae67.md @@ -1,6 +1,6 @@ --- id: 65389eff4893facbbe6eae67 -title: Step 29 +title: Passo 29 challengeType: 0 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/6607343c7909e562a2e3d94c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/6607343c7909e562a2e3d94c.md index 57ff60a23dd..ac06bf99f45 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/6607343c7909e562a2e3d94c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/6607343c7909e562a2e3d94c.md @@ -1,6 +1,6 @@ --- id: 6607343c7909e562a2e3d94c -title: Step 18 +title: Passo 18 challengeType: 0 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/660736bde759eb64c3bd15c3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/660736bde759eb64c3bd15c3.md index 9aabe798073..9140f02558f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/660736bde759eb64c3bd15c3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/660736bde759eb64c3bd15c3.md @@ -1,6 +1,6 @@ --- id: 660736bde759eb64c3bd15c3 -title: Step 19 +title: Etapa 19 challengeType: 0 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/66074463e8cc156e18142dbe.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/66074463e8cc156e18142dbe.md index eee9daf2d54..747a358f3ba 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/66074463e8cc156e18142dbe.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/66074463e8cc156e18142dbe.md @@ -1,6 +1,6 @@ --- id: 66074463e8cc156e18142dbe -title: Step 20 +title: 20° passo challengeType: 0 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/660746a665a61c7075a0f457.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/660746a665a61c7075a0f457.md index b217584ff15..53afbd996c8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/660746a665a61c7075a0f457.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/660746a665a61c7075a0f457.md @@ -1,6 +1,6 @@ --- id: 660746a665a61c7075a0f457 -title: Step 21 +title: Passo 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/66074af5d2b4f373cb140d6a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/66074af5d2b4f373cb140d6a.md index 54320fb96b3..97ed1bd99a7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/66074af5d2b4f373cb140d6a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-the-date-object-by-building-a-date-formatter/66074af5d2b4f373cb140d6a.md @@ -1,6 +1,6 @@ --- id: 66074af5d2b4f373cb140d6a -title: Step 22 +title: Passo 22 challengeType: 0 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d0ab797cb716189ffcc0a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d0ab797cb716189ffcc0a.md index b0f20ffb155..b386e87d1e7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d0ab797cb716189ffcc0a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d0ab797cb716189ffcc0a.md @@ -1,6 +1,6 @@ --- id: 663d0ab797cb716189ffcc0a -title: Step 1 +title: 1° passo challengeType: 0 dashedName: step-1 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d18c574456976d11b6e87.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d18c574456976d11b6e87.md index 13a1db72458..d8f80b1e4a8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d18c574456976d11b6e87.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d18c574456976d11b6e87.md @@ -1,6 +1,6 @@ --- id: 663d18c574456976d11b6e87 -title: Step 2 +title: Passo 2 challengeType: 0 dashedName: step-2 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d2f8056542a8066fd6cc6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d2f8056542a8066fd6cc6.md index c6708d53e22..65f8dd4c516 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d2f8056542a8066fd6cc6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d2f8056542a8066fd6cc6.md @@ -1,6 +1,6 @@ --- id: 663d2f8056542a8066fd6cc6 -title: Step 3 +title: Passo 3 challengeType: 0 dashedName: step-3 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d4008cee64e05dfb08f0d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d4008cee64e05dfb08f0d.md index 47993abf27c..ccd3fc2a95a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d4008cee64e05dfb08f0d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d4008cee64e05dfb08f0d.md @@ -1,6 +1,6 @@ --- id: 663d4008cee64e05dfb08f0d -title: Step 4 +title: Passo 4 challengeType: 0 dashedName: step-4 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5697d80fef0eea026672.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5697d80fef0eea026672.md index c007c352ac3..e64bab24afc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5697d80fef0eea026672.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5697d80fef0eea026672.md @@ -1,6 +1,6 @@ --- id: 663d5697d80fef0eea026672 -title: Step 5 +title: Passo 5 challengeType: 0 dashedName: step-5 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..929c4bc0ce0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -1,6 +1,6 @@ --- id: 663d5bebe2eef6128a0b1e75 -title: Step 6 +title: 6° passo challengeType: 0 dashedName: step-6 --- @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/662693f82c91a66be46c881b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/662693f82c91a66be46c881b.md index 286128cc2cf..bdd1b77332e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/662693f82c91a66be46c881b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/662693f82c91a66be46c881b.md @@ -1,6 +1,6 @@ --- id: 662693f82c91a66be46c881b -title: Step 1 +title: 1° passo challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626a060c4006f793e10cb33.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626a060c4006f793e10cb33.md index f7e9253a5a5..f587a1220f1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626a060c4006f793e10cb33.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626a060c4006f793e10cb33.md @@ -1,6 +1,6 @@ --- id: 6626a060c4006f793e10cb33 -title: Step 2 +title: Passo 2 challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626b4c58c027d86478ff5eb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626b4c58c027d86478ff5eb.md index b168e1325fc..f6272311957 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626b4c58c027d86478ff5eb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626b4c58c027d86478ff5eb.md @@ -1,6 +1,6 @@ --- id: 6626b4c58c027d86478ff5eb -title: Step 3 +title: Passo 3 challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626b8dcf5057f896f948440.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626b8dcf5057f896f948440.md index 88517535b36..e81089bd865 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626b8dcf5057f896f948440.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/review-js-fundamentals-by-building-a-gradebook-app/6626b8dcf5057f896f948440.md @@ -1,6 +1,6 @@ --- id: 6626b8dcf5057f896f948440 -title: Step 4 +title: Passo 4 challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index 5b44b1365ac..7713242f749 100644 --- a/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Questão H de Trabalhando com textos +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index fb7485142d2..4507c29d60e 100644 --- a/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Questão I de Trabalhando com textos +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index a2439fd719e..c1369671014 100644 --- a/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Questão J de Trabalhando com textos +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/portuguese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/portuguese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 97e5899b5e4..7f7670a4187 100644 --- a/curriculum/challenges/portuguese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/portuguese/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/651dd5ae6ffb500e3f2ce47c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/651dd5ae6ffb500e3f2ce47c.md index 17e98672bb5..3a713ac846b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/651dd5ae6ffb500e3f2ce47c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/651dd5ae6ffb500e3f2ce47c.md @@ -11,7 +11,7 @@ Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Assista o vídeo +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b05367b59300bcb5f18ef.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b05367b59300bcb5f18ef.md index b343e0806ef..2a0a589813c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b05367b59300bcb5f18ef.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b05367b59300bcb5f18ef.md @@ -7,17 +7,17 @@ dashedName: task-1 # --description-- -In English, you can use the verb `to be` to ask questions about feelings, states, or conditions. When you want to ask such questions, you just swap the positions of the subject (like `you` or `he`) and the verb `to be` (like `are` or `is`). For example, to turn this sentence `You are a developer.` into a question, you switch `you` and `are`: +Em inglês, você pode usar o verbo `to be` para fazer perguntas sobre sentimentos, estados ou condições. Quando você deseja fazer esse tipo de pergunta, basta trocar as posições do sujeito (como `you` ou `he`) e do verbo `to be` (como `are` ou `is`). Por exemplo, para transformar esta frase `You are a developer.` em uma pergunta, você inverte `you` e `are`: -`Are you a developer?` Notice how the order changes to ask a question. +`Are you a developer?` Observe como a ordem é alterada para formular uma pergunta. -Here are some more examples of turning statements into questions using `to be`: +Aqui estão mais alguns exemplos de transformar afirmações em perguntas usando `to be`: `He is here.` -> `Is he here?` `They are ready.` -> `Are they ready?` # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- @@ -31,7 +31,7 @@ Listen to the audio to complete the sentence below. ### --feedback-- -You use this form of `to be` when asking about more than one person or directly to someone as `you`. +Você utiliza esta forma de `to be` ao perguntar sobre mais de uma pessoa ou diretamente a alguém como `you`. # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b130a905a6045ebe03214.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b130a905a6045ebe03214.md index 6787f23e271..7bfea2eb16f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b130a905a6045ebe03214.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b130a905a6045ebe03214.md @@ -13,7 +13,7 @@ dashedName: task-6 # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b207e8603d076272706b1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b207e8603d076272706b1.md index 23e149536a2..e2e30217cc2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b207e8603d076272706b1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b207e8603d076272706b1.md @@ -1,6 +1,6 @@ --- id: 657b207e8603d076272706b1 -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b23ad0df43588a6eadfa4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b23ad0df43588a6eadfa4.md index b63203d5e7e..2a560614e07 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b23ad0df43588a6eadfa4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b23ad0df43588a6eadfa4.md @@ -1,6 +1,6 @@ --- id: 657b23ad0df43588a6eadfa4 -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b292a911788a7faf67415.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b292a911788a7faf67415.md index d738e1488cc..7a66adc6f51 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b292a911788a7faf67415.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b292a911788a7faf67415.md @@ -13,7 +13,7 @@ In this part of the dialogue, Tom is asking if the team is interested in playing # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b2e9f139789bdd50116b5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b2e9f139789bdd50116b5.md index bd1f90d5d6c..c7ddbb891f8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b2e9f139789bdd50116b5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b2e9f139789bdd50116b5.md @@ -7,7 +7,7 @@ dashedName: task-17 # --description-- -In this part of the dialogue, Sarah suggests playing `Gartic` on the next game night. The phrase `on the next game night` refers to a specific future occasion when they usually meet to play games. +Nesta parte do diálogo, Sarah sugere jogar `Gartic` na próxima noite de jogo. The phrase `on the next game night` refers to a specific future occasion when they usually meet to play games. # --question-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b3136477b8ac802088c97.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b3136477b8ac802088c97.md index ad03655627c..594a00fe03a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b3136477b8ac802088c97.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b3136477b8ac802088c97.md @@ -7,11 +7,11 @@ dashedName: dialogue-2-new-hobbies # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b316b61644cc96b677e61.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b316b61644cc96b677e61.md index 4ec031c3f2b..17e86371572 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b316b61644cc96b677e61.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b316b61644cc96b677e61.md @@ -15,7 +15,7 @@ The phrase `lots of` means a large quantity or a large number of something. # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5d1a53973f78997c02f6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5d1a53973f78997c02f6.md index 6d981416575..a64556f98b3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5d1a53973f78997c02f6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5d1a53973f78997c02f6.md @@ -1,6 +1,6 @@ --- id: 657b5d1a53973f78997c02f6 -title: Task 20 +title: Tarefa 20 challengeType: 22 dashedName: task-20 --- @@ -13,7 +13,7 @@ The word `outside` refers to the area or space that is not inside a particular b # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5d614d85dd79d21670de.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5d614d85dd79d21670de.md index e2c8120bb68..95c9899a23c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5d614d85dd79d21670de.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5d614d85dd79d21670de.md @@ -1,6 +1,6 @@ --- id: 657b5d614d85dd79d21670de -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- @@ -15,7 +15,7 @@ In a conversation, when you agree with someone but want to add more information, # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5dcd5d70d67c43f62d52.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5dcd5d70d67c43f62d52.md index 455350e25ad..9beb695e44a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5dcd5d70d67c43f62d52.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b5dcd5d70d67c43f62d52.md @@ -1,6 +1,6 @@ --- id: 657b5dcd5d70d67c43f62d52 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b69e10d6606a0185d4d4f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b69e10d6606a0185d4d4f.md index 3b7b08ef7c4..3af22c81caf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b69e10d6606a0185d4d4f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b69e10d6606a0185d4d4f.md @@ -9,7 +9,7 @@ dashedName: task-23 # --description-- -So far you have learned how to create questions with the verb to be. In sentences with the verb `to be` (am, is, are) you just have to change the order of the noun and the verb to create a question. Like this: +So far you have learned how to create questions with the verb to be. In sentences with the verb `to be` (am, is, are) you just have to change the order of the noun and the verb to create a question. Assim: `You are a developer` -> `Are you a developer?` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b703d0cd20eb51c2fd239.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b703d0cd20eb51c2fd239.md index c65027c7664..563cb5b5b50 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b703d0cd20eb51c2fd239.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b703d0cd20eb51c2fd239.md @@ -1,6 +1,6 @@ --- id: 657b703d0cd20eb51c2fd239 -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b72cbdef32ec0b1a24afb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b72cbdef32ec0b1a24afb.md index 0e92f530102..f38f3258a25 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b72cbdef32ec0b1a24afb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b72cbdef32ec0b1a24afb.md @@ -1,6 +1,6 @@ --- id: 657b72cbdef32ec0b1a24afb -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b73ad321867c36c1c621d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b73ad321867c36c1c621d.md index 8faa2afdd16..5b350503bc6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b73ad321867c36c1c621d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b73ad321867c36c1c621d.md @@ -1,6 +1,6 @@ --- id: 657b73ad321867c36c1c621d -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- @@ -13,7 +13,7 @@ In conversations, you might use certain phrases to show you agree or to go back # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b7acdc06454fbb0152538.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b7acdc06454fbb0152538.md index 790bd160c7b..5898718ebff 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b7acdc06454fbb0152538.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b7acdc06454fbb0152538.md @@ -13,7 +13,7 @@ In conversations, you might use certain words to go back to a topic that was men # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b7d1aec6d4803cf02e84f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b7d1aec6d4803cf02e84f.md index cee97c3069a..15e4f302cb6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b7d1aec6d4803cf02e84f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b7d1aec6d4803cf02e84f.md @@ -14,7 +14,7 @@ People have different music preferences, and sometimes they might tell you about # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b8487605c881dc8ebde9e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b8487605c881dc8ebde9e.md index 3ac9db13abd..8fa4178a145 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b8487605c881dc8ebde9e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b8487605c881dc8ebde9e.md @@ -1,6 +1,6 @@ --- id: 657b8487605c881dc8ebde9e -title: Task 37 +title: Tarefa 37 challengeType: 22 dashedName: task-37 --- @@ -11,7 +11,7 @@ Discussing daily activities often includes talking about what you don't do. # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b8597aaa5162475812ff8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b8597aaa5162475812ff8.md index 95af99c8788..efadf761225 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b8597aaa5162475812ff8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b8597aaa5162475812ff8.md @@ -1,6 +1,6 @@ --- id: 657b8597aaa5162475812ff8 -title: Task 38 +title: Tarefa 38 challengeType: 19 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b971e15225e53da93afd3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b971e15225e53da93afd3.md index 345685054bc..2fe383e14dd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b971e15225e53da93afd3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b971e15225e53da93afd3.md @@ -11,7 +11,7 @@ When people confirm agreements informally, they often use this phrase. This seal # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b97be2621d55d1b8dc9a1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b97be2621d55d1b8dc9a1.md index a3af8bb366b..e0223713ed1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b97be2621d55d1b8dc9a1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657b97be2621d55d1b8dc9a1.md @@ -7,11 +7,11 @@ dashedName: dialogue-3-tom-asks-about-the-team-lead # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb542baf74594933c7ac9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb542baf74594933c7ac9.md index f75d5961de9..06db54dbc3c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb542baf74594933c7ac9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb542baf74594933c7ac9.md @@ -1,6 +1,6 @@ --- id: 657cb542baf74594933c7ac9 -title: Task 41 +title: Tarefa 41 challengeType: 19 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb5dd956a8797462da793.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb5dd956a8797462da793.md index a6861cc649d..a979df13807 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb5dd956a8797462da793.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb5dd956a8797462da793.md @@ -9,7 +9,7 @@ dashedName: task-42 When you want to know about someone's character or personality, you can ask, `What is (he/she) like?` or `What are they like?`. -This question is about the qualities of a person, not about their physical appearance. Example: +This question is about the qualities of a person, not about their physical appearance. Exemplo: Imagine you meet a new student in your programming class and you want to know more about her. You can ask a classmate `What is she like?`. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb68bf15f349a744b5fba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb68bf15f349a744b5fba.md index ee6a72d1f27..fbc4d8666ba 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb68bf15f349a744b5fba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb68bf15f349a744b5fba.md @@ -9,7 +9,7 @@ dashedName: task-43 When you want to learn about a person’s character or personality without specifying their gender, you can use `they` as a singular pronoun and ask, `What are they like?`. -This is a respectful and inclusive way to ask about someone. Using `they` in this way ensures that you don't make assumptions about people. Example: +This is a respectful and inclusive way to ask about someone. Using `they` in this way ensures that you don't make assumptions about people. Exemplo: Imagine there is a new team member joining your programming project, but you haven’t met them yet. Instead of assuming their gender, you can ask your supervisor, `What are they like?` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb91ed0a08ea3761c7407.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb91ed0a08ea3761c7407.md index 21faed41c49..716bbcda350 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb91ed0a08ea3761c7407.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cb91ed0a08ea3761c7407.md @@ -1,6 +1,6 @@ --- id: 657cb91ed0a08ea3761c7407 -title: Task 44 +title: Tarefa 44 challengeType: 22 dashedName: task-44 --- @@ -15,7 +15,7 @@ On the other hand, `What does he/she look like?` is the question you would ask i # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cbc6e9b4676aedfa305bc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cbc6e9b4676aedfa305bc.md index ea3aa7d9a65..cae788ad949 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cbc6e9b4676aedfa305bc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cbc6e9b4676aedfa305bc.md @@ -1,6 +1,6 @@ --- id: 657cbc6e9b4676aedfa305bc -title: Task 46 +title: Tarefa 46 challengeType: 22 dashedName: task-46 --- @@ -13,7 +13,7 @@ Adjectives can also describe how a person likes things to be done. In the dialog # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cbccfa92918b1037dbf60.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cbccfa92918b1037dbf60.md index 6bb6b6f9719..31468626be5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cbccfa92918b1037dbf60.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cbccfa92918b1037dbf60.md @@ -1,6 +1,6 @@ --- id: 657cbccfa92918b1037dbf60 -title: Task 47 +title: Tarefa 47 challengeType: 19 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cc1a2ced22ac3e7d57fd3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cc1a2ced22ac3e7d57fd3.md index daad2318c76..72316824201 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cc1a2ced22ac3e7d57fd3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cc1a2ced22ac3e7d57fd3.md @@ -15,7 +15,7 @@ In the dialogue, Tom says `Those are great traits...` because he's talking about # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cc2b9cc9e97c7bd862273.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cc2b9cc9e97c7bd862273.md index d1c5cc252e7..3acffdd88ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cc2b9cc9e97c7bd862273.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cc2b9cc9e97c7bd862273.md @@ -13,7 +13,7 @@ By saying `great traits for someone in her position,` Tom is saying that the qua # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cd2dce697d2feacf7620d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cd2dce697d2feacf7620d.md index 5cee80a9e45..43e53fee75e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cd2dce697d2feacf7620d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cd2dce697d2feacf7620d.md @@ -13,7 +13,7 @@ Now you will practice listening for the correct form of `do`. Listen carefully t # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cdc5a8e30191d1abec8b7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cdc5a8e30191d1abec8b7.md index 5ce624cfd0b..a51121982aa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cdc5a8e30191d1abec8b7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cdc5a8e30191d1abec8b7.md @@ -1,6 +1,6 @@ --- id: 657cdc5a8e30191d1abec8b7 -title: Task 58 +title: Tarefa 58 challengeType: 22 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce061cda4a42a99c65d89.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce061cda4a42a99c65d89.md index f4803af4062..32877a4cb7d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce061cda4a42a99c65d89.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce061cda4a42a99c65d89.md @@ -1,6 +1,6 @@ --- id: 657ce061cda4a42a99c65d89 -title: Task 60 +title: Tarefa 60 challengeType: 19 dashedName: task-60 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce0bbf16c312c8dcc8dff.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce0bbf16c312c8dcc8dff.md index 6b32cf6418b..09455c3d00d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce0bbf16c312c8dcc8dff.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce0bbf16c312c8dcc8dff.md @@ -1,6 +1,6 @@ --- id: 657ce0bbf16c312c8dcc8dff -title: Task 61 +title: Tarefa 61 challengeType: 19 dashedName: task-61 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce1f82fbe552fcba96375.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce1f82fbe552fcba96375.md index b966bcbc933..48b563b07d0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce1f82fbe552fcba96375.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ce1f82fbe552fcba96375.md @@ -13,7 +13,7 @@ The phrase `most of the time` means usually or very often. # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cea90396c694e4fdcaeba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cea90396c694e4fdcaeba.md index 15d105c5f5d..9e2bcc2a1a7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cea90396c694e4fdcaeba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cea90396c694e4fdcaeba.md @@ -13,7 +13,7 @@ You use `when` to ask about the time or date something happens. It's like asking # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cebddc542e05459add214.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cebddc542e05459add214.md index 588d4ceaf1b..800a910365e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cebddc542e05459add214.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cebddc542e05459add214.md @@ -1,6 +1,6 @@ --- id: 657cebddc542e05459add214 -title: Task 67 +title: Tarefa 67 challengeType: 22 dashedName: task-67 --- @@ -15,7 +15,7 @@ For example: `I schedule my doctor's appointments for the first thing in the mor # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cec5d8f35ab56c672b561.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cec5d8f35ab56c672b561.md index 6928598389a..b8f5b7866d6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cec5d8f35ab56c672b561.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cec5d8f35ab56c672b561.md @@ -1,6 +1,6 @@ --- id: 657cec5d8f35ab56c672b561 -title: Task 68 +title: Tarefa 68 challengeType: 19 dashedName: task-68 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ced2d5ea0ae5baac42551.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ced2d5ea0ae5baac42551.md index ae9b8994f28..2d60aba0c1c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ced2d5ea0ae5baac42551.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ced2d5ea0ae5baac42551.md @@ -1,6 +1,6 @@ --- id: 657ced2d5ea0ae5baac42551 -title: Task 70 +title: Tarefa 70 challengeType: 19 dashedName: task-70 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ced8b322c055e500c2d23.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ced8b322c055e500c2d23.md index 3c230d93139..b4ed6134917 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ced8b322c055e500c2d23.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ced8b322c055e500c2d23.md @@ -13,7 +13,7 @@ The verb `to think` is used to express an opinion or belief about something. It # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cfddfaca4b58b1279aaf9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cfddfaca4b58b1279aaf9.md index 338f8ac0e24..1c586acea0a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cfddfaca4b58b1279aaf9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cfddfaca4b58b1279aaf9.md @@ -13,7 +13,7 @@ To `encourage` means to give support, confidence, or hope to someone. It's what # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cfff65708189adb524933.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cfff65708189adb524933.md index c9fc0399472..9c337ad13c7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cfff65708189adb524933.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657cfff65708189adb524933.md @@ -7,11 +7,11 @@ dashedName: dialogue-4-talking-about-the-monday-meetings # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbdae2bd6f60bda3226cc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbdae2bd6f60bda3226cc.md index 2f455b67e97..e930e25e637 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbdae2bd6f60bda3226cc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbdae2bd6f60bda3226cc.md @@ -15,7 +15,7 @@ When you want to know how often something happens, you can use `every` followed # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbe6c256e75101aa95abb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbe6c256e75101aa95abb.md index 1688c0d0126..0a4fe3a624d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbe6c256e75101aa95abb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbe6c256e75101aa95abb.md @@ -1,6 +1,6 @@ --- id: 657dbe6c256e75101aa95abb -title: Task 79 +title: Tarefa 79 challengeType: 22 dashedName: task-79 --- @@ -14,7 +14,7 @@ To confirm information, especially in answers to yes/no questions, we often use # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbeb6e94406122619ecad.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbeb6e94406122619ecad.md index 8592f321044..b7fd62ecb4c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbeb6e94406122619ecad.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dbeb6e94406122619ecad.md @@ -1,6 +1,6 @@ --- id: 657dbeb6e94406122619ecad -title: Task 80 +title: Tarefa 80 challengeType: 19 dashedName: task-80 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc02d216cf41afa064333.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc02d216cf41afa064333.md index b8b8ed39569..c93b3c689ea 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc02d216cf41afa064333.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc02d216cf41afa064333.md @@ -14,7 +14,7 @@ When you talk about going over details or talking about specific topics in a mee # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc130b35c3a20c8908eb1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc130b35c3a20c8908eb1.md index b2968813a1c..f5ba81a7188 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc130b35c3a20c8908eb1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc130b35c3a20c8908eb1.md @@ -13,7 +13,7 @@ When you talk about how much time an event or activity `lasts,` you are talking # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc16b741b3a22902989b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc16b741b3a22902989b8.md index 432d1e9e11e..55be7fa5f19 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc16b741b3a22902989b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc16b741b3a22902989b8.md @@ -1,6 +1,6 @@ --- id: 657dc16b741b3a22902989b8 -title: Task 86 +title: Tarefa 86 challengeType: 19 dashedName: task-86 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc263516a5127ce677b8b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc263516a5127ce677b8b.md index 34670397344..7d5de08ee84 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc263516a5127ce677b8b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc263516a5127ce677b8b.md @@ -1,6 +1,6 @@ --- id: 657dc263516a5127ce677b8b -title: Task 88 +title: Tarefa 88 challengeType: 19 dashedName: task-88 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc2fb63bc6c2b596dd6e4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc2fb63bc6c2b596dd6e4.md index 3105584e916..36e3a7f6452 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc2fb63bc6c2b596dd6e4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc2fb63bc6c2b596dd6e4.md @@ -1,6 +1,6 @@ --- id: 657dc2fb63bc6c2b596dd6e4 -title: Task 89 +title: Tarefa 89 challengeType: 22 dashedName: task-89 --- @@ -13,7 +13,7 @@ Listen to what Tom says to Sophie. # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc3509f7c712df6a1c673.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc3509f7c712df6a1c673.md index 5afd84d8979..4dfd7970ed2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc3509f7c712df6a1c673.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc3509f7c712df6a1c673.md @@ -1,6 +1,6 @@ --- id: 657dc3509f7c712df6a1c673 -title: Task 90 +title: Tarefa 90 challengeType: 22 dashedName: task-90 --- @@ -13,7 +13,7 @@ An `agenda` is a list of topics to be discussed or things to be done at a meetin # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc40e8ceee1310ef482d1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc40e8ceee1310ef482d1.md index 53c1487c3a7..b64b233fc01 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc40e8ceee1310ef482d1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc40e8ceee1310ef482d1.md @@ -1,6 +1,6 @@ --- id: 657dc40e8ceee1310ef482d1 -title: Task 91 +title: Tarefa 91 challengeType: 19 dashedName: task-91 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc50830f9be380105f1ee.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc50830f9be380105f1ee.md index 925e436ef2f..89d2a4512f4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc50830f9be380105f1ee.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc50830f9be380105f1ee.md @@ -1,6 +1,6 @@ --- id: 657dc50830f9be380105f1ee -title: Task 94 +title: Tarefa 94 challengeType: 19 dashedName: task-94 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc5ff02128e3ed5ae3740.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc5ff02128e3ed5ae3740.md index f2d9412f316..40429c88e99 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc5ff02128e3ed5ae3740.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc5ff02128e3ed5ae3740.md @@ -1,6 +1,6 @@ --- id: 657dc5ff02128e3ed5ae3740 -title: Task 97 +title: Tarefa 97 challengeType: 19 dashedName: task-97 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc65ba83c584136bea3e4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc65ba83c584136bea3e4.md index da3b7b144b6..d9dfa6aa82d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc65ba83c584136bea3e4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc65ba83c584136bea3e4.md @@ -1,6 +1,6 @@ --- id: 657dc65ba83c584136bea3e4 -title: Task 98 +title: Tarefa 98 challengeType: 19 dashedName: task-98 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc7a30bfd894f0ed12a4f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc7a30bfd894f0ed12a4f.md index bae6d7c4e4b..a5c3a261bd2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc7a30bfd894f0ed12a4f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc7a30bfd894f0ed12a4f.md @@ -1,6 +1,6 @@ --- id: 657dc7a30bfd894f0ed12a4f -title: Task 101 +title: Tarefa 101 challengeType: 19 dashedName: task-101 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc81ff9e4eb5177179dd0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc81ff9e4eb5177179dd0.md index 4e448125dea..662cfb0c760 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc81ff9e4eb5177179dd0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc81ff9e4eb5177179dd0.md @@ -1,6 +1,6 @@ --- id: 657dc81ff9e4eb5177179dd0 -title: Task 102 +title: Tarefa 102 challengeType: 19 dashedName: task-102 --- @@ -17,7 +17,7 @@ Take a look at these adverbs, and the frequency they usually represent. | Rarely | 5% | Generally | 80% | | Seldom | 15% | Usually | 90% | | Occasionally | 30% | Always | 100% | -| Sometimes | 50% | | | +| Às vezes | 50% | | | # --question-- @@ -43,7 +43,7 @@ Rarely --- -Sometimes +Às vezes --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9004d076d55baf36323.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9004d076d55baf36323.md index fb062c7eebc..6c2f104cf01 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9004d076d55baf36323.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9004d076d55baf36323.md @@ -21,7 +21,7 @@ Here is the adverb frequency chart from the last challenge, for your convenience | Rarely | 5% | Generally | 80% | | Seldom | 15% | Usually | 90% | | Occasionally | 30% | Always | 100% | -| Sometimes | 50% | | | +| Às vezes | 50% | | | # --question-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9946a177a5938ad3854.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9946a177a5938ad3854.md index 117b35b3499..f5453bf6ffa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9946a177a5938ad3854.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9946a177a5938ad3854.md @@ -1,6 +1,6 @@ --- id: 657dc9946a177a5938ad3854 -title: Task 104 +title: Tarefa 104 challengeType: 22 dashedName: task-104 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9e7b97f2c5b00f67b2f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9e7b97f2c5b00f67b2f.md index 85a6eb19171..d5b4f2187f4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9e7b97f2c5b00f67b2f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dc9e7b97f2c5b00f67b2f.md @@ -1,6 +1,6 @@ --- id: 657dc9e7b97f2c5b00f67b2f -title: Task 105 +title: Tarefa 105 challengeType: 19 dashedName: task-105 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dca3c709bf15dd0572a6b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dca3c709bf15dd0572a6b.md index 5839d701cdb..80c5bc8151d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dca3c709bf15dd0572a6b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dca3c709bf15dd0572a6b.md @@ -13,7 +13,7 @@ To `attend` means to go to an event, meeting, or class. For example, a programme # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcafa1e1a4a62dc03cb76.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcafa1e1a4a62dc03cb76.md index c9f9672b044..87ebffef7c0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcafa1e1a4a62dc03cb76.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcafa1e1a4a62dc03cb76.md @@ -7,11 +7,11 @@ dashedName: dialogue-5-knowing-the-area-around-the-company # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcd1ade6c116a0bc7c9b2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcd1ade6c116a0bc7c9b2.md index aca8a8c307a..a305e8a53f3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcd1ade6c116a0bc7c9b2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcd1ade6c116a0bc7c9b2.md @@ -1,6 +1,6 @@ --- id: 657dcd1ade6c116a0bc7c9b2 -title: Task 108 +title: Tarefa 108 challengeType: 22 dashedName: task-108 --- @@ -13,7 +13,7 @@ When you move to a new place or visit somewhere for the first time, you might sp # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcd54267f5d6bc85bd788.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcd54267f5d6bc85bd788.md index d4a876aba18..43b3cbcfda5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcd54267f5d6bc85bd788.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcd54267f5d6bc85bd788.md @@ -1,6 +1,6 @@ --- id: 657dcd54267f5d6bc85bd788 -title: Task 109 +title: Tarefa 109 challengeType: 22 dashedName: task-109 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcf46fdf3f37766568bed.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcf46fdf3f37766568bed.md index 0c06b0e6dc6..65a9addb2d5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcf46fdf3f37766568bed.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcf46fdf3f37766568bed.md @@ -1,6 +1,6 @@ --- id: 657dcf46fdf3f37766568bed -title: Task 113 +title: Tarefa 113 challengeType: 19 dashedName: task-113 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcf9f7d5c747a19a36c9c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcf9f7d5c747a19a36c9c.md index bfe67488721..7c42bab830a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcf9f7d5c747a19a36c9c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dcf9f7d5c747a19a36c9c.md @@ -13,7 +13,7 @@ The phrase `around here` refers to the immediate vicinity or nearby area. # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd09e586b597fe5cd0d3d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd09e586b597fe5cd0d3d.md index 29daacb8243..0a7332a2abf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd09e586b597fe5cd0d3d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd09e586b597fe5cd0d3d.md @@ -13,7 +13,7 @@ dashedName: task-116 # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd4012bce1081c8d8c934.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd4012bce1081c8d8c934.md index 7b7a02e6d82..6e8fdbf9320 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd4012bce1081c8d8c934.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd4012bce1081c8d8c934.md @@ -1,6 +1,6 @@ --- id: 657dd4012bce1081c8d8c934 -title: Task 117 +title: Tarefa 117 challengeType: 19 dashedName: task-117 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd46946896b8d19484e26.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd46946896b8d19484e26.md index d2d8b670619..69414bdb93c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd46946896b8d19484e26.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd46946896b8d19484e26.md @@ -9,7 +9,7 @@ dashedName: task-118 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd5864c6f0e91483cc03b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd5864c6f0e91483cc03b.md index 322d3275997..25f12695a81 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd5864c6f0e91483cc03b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dd5864c6f0e91483cc03b.md @@ -1,6 +1,6 @@ --- id: 657dd5864c6f0e91483cc03b -title: Task 119 +title: Tarefa 119 challengeType: 19 dashedName: task-119 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ddaaf8d89b4a56e3fdf78.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ddaaf8d89b4a56e3fdf78.md index c1864a5ac9e..ed0ae005508 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ddaaf8d89b4a56e3fdf78.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ddaaf8d89b4a56e3fdf78.md @@ -1,6 +1,6 @@ --- id: 657ddaaf8d89b4a56e3fdf78 -title: Task 123 +title: Tarefa 123 challengeType: 22 dashedName: task-123 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ddcd61f516cacdc7a04ca.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ddcd61f516cacdc7a04ca.md index 020ced7a1cc..823d1b997e3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ddcd61f516cacdc7a04ca.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657ddcd61f516cacdc7a04ca.md @@ -1,6 +1,6 @@ --- id: 657ddcd61f516cacdc7a04ca -title: Task 124 +title: Tarefa 124 challengeType: 19 dashedName: task-124 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dde8f76d7b2b577030aff.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dde8f76d7b2b577030aff.md index 873977f5568..deeaac9b561 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dde8f76d7b2b577030aff.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-conversation-starters-in-the-break-room/657dde8f76d7b2b577030aff.md @@ -1,6 +1,6 @@ --- id: 657dde8f76d7b2b577030aff -title: Task 127 +title: Tarefa 127 challengeType: 22 dashedName: task-127 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/651dd3e06ffb500e3f2ce478.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/651dd3e06ffb500e3f2ce478.md index 6abcb984e6f..f24293b350d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/651dd3e06ffb500e3f2ce478.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/651dd3e06ffb500e3f2ce478.md @@ -11,7 +11,7 @@ Watch the video below to understand the context of the upcoming lessons. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6543aae6f5f028dba112f277.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6543aae6f5f028dba112f277.md index b1339f873d4..152174191d5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6543aae6f5f028dba112f277.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6543aae6f5f028dba112f277.md @@ -1,6 +1,6 @@ --- id: 6543aae6f5f028dba112f277 -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6543abeff5f028dba112f278.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6543abeff5f028dba112f278.md index f862cf40c11..6460b8f0f45 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6543abeff5f028dba112f278.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6543abeff5f028dba112f278.md @@ -12,7 +12,7 @@ Tom: Hi, that's right! I'm Tom McKenzie. # --description-- -In English, the verb `to be` is used to talk about identities, characteristics, and more. The contraction `I'm` is a combination of `I` and `am`. Here, Tom uses it to introduce himself. +In English, the verb `to be` is used to talk about identities, characteristics, and more. The contraction `I'm` is a combination of `I` and `am`. Aqui, o Tom a usa para se apresentar. # --question-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6552939414fdaa21fc734788.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6552939414fdaa21fc734788.md index 9819fc941ba..d0ddc06233a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6552939414fdaa21fc734788.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6552939414fdaa21fc734788.md @@ -1,6 +1,6 @@ --- id: 6552939414fdaa21fc734788 -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6568c68b92a63810a57cffaf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6568c68b92a63810a57cffaf.md index 5e7ec8bb990..947957904e3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6568c68b92a63810a57cffaf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6568c68b92a63810a57cffaf.md @@ -1,6 +1,6 @@ --- id: 6568c68b92a63810a57cffaf -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 --- @@ -51,7 +51,7 @@ California ### --feedback-- -Correct! In this context, `It's` refers to California, which Tom is describing in relation to Texas. +Correto! In this context, `It's` refers to California, which Tom is describing in relation to Texas. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6568c759cb59e810dfaa1506.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6568c759cb59e810dfaa1506.md index 9dc2477d825..affb1ab98e2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6568c759cb59e810dfaa1506.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/6568c759cb59e810dfaa1506.md @@ -42,7 +42,7 @@ He is content and feels positive about California. ### --feedback-- -Correct! `I like it here` indicates contentment and positivity about the place. +Correto! `I like it here` indicates contentment and positivity about the place. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a10141825a30eb81ff4db.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a10141825a30eb81ff4db.md index 4cfeaa52cbd..a2c503d1d28 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a10141825a30eb81ff4db.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a10141825a30eb81ff4db.md @@ -29,7 +29,7 @@ Organize and tidy it ### --feedback-- -To `organize` means to arrange things in a structured manner or specific order. `Tidy up` means to make something neat and orderly. Both these actions are commonly done to a workspace or desk to prepare for tasks. Well done! +To `organize` means to arrange things in a structured manner or specific order. `Tidy up` means to make something neat and orderly. Both these actions are commonly done to a workspace or desk to prepare for tasks. Bom trabalho! --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a10aaa023200eddd09d88.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a10aaa023200eddd09d88.md index 5d5938fa857..dcce4aebbe9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a10aaa023200eddd09d88.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a10aaa023200eddd09d88.md @@ -37,7 +37,7 @@ A tool used with computers to draw. ### --feedback-- -Yes! Drawing tablets connect to computers. +Sim! Drawing tablets connect to computers. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a137523a9bc0f9d3bae01.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a137523a9bc0f9d3bae01.md index ddea04674fb..5b9eaaf6756 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a137523a9bc0f9d3bae01.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a137523a9bc0f9d3bae01.md @@ -1,6 +1,6 @@ --- id: 656a137523a9bc0f9d3bae01 -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 245db62d950..230bcf2a51d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialogue 2: Tom Meets the Coworker Next To Him" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- @@ -11,7 +11,7 @@ Watch the video below to understand the context of the upcoming lessons. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2bfbfc3336274c874bed.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2bfbfc3336274c874bed.md index 53358f3a541..34f9cadf40a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2bfbfc3336274c874bed.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2bfbfc3336274c874bed.md @@ -1,6 +1,6 @@ --- id: 656a2bfbfc3336274c874bed -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a401d1b00af2e25b0fd8b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a401d1b00af2e25b0fd8b.md index 1fa6790a7a6..55c0066aec0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a401d1b00af2e25b0fd8b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a401d1b00af2e25b0fd8b.md @@ -22,11 +22,11 @@ Is Sophie likely to be the only developer from the company? ## --answers-- -Yes +Sim --- -No +Não ## --video-solution-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a417f7f9daf2e9aae6831.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a417f7f9daf2e9aae6831.md index a2a594ee907..3e25b11db10 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a417f7f9daf2e9aae6831.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a417f7f9daf2e9aae6831.md @@ -34,7 +34,7 @@ In which statement does the term CEO refer to a specific person known to both th ### --feedback-- -`a CEO` means it could be any CEO, not someone they both know. Try again +`a CEO` means it could be any CEO, not someone they both know. Tente novamente ## --video-solution-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a421a905e792eca05d447.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a421a905e792eca05d447.md index e1ce4cb0001..b85c882caab 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a421a905e792eca05d447.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a421a905e792eca05d447.md @@ -1,6 +1,6 @@ --- id: 656a421a905e792eca05d447 -title: Task 39 +title: Tarefa 39 challengeType: 19 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a4ef5de14f8301be5764b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a4ef5de14f8301be5764b.md index b733f8f6d3b..ca730e93e2b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a4ef5de14f8301be5764b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a4ef5de14f8301be5764b.md @@ -1,6 +1,6 @@ --- id: 656a4ef5de14f8301be5764b -title: Task 42 +title: Tarefa 42 challengeType: 22 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a4fcaa739b7308ad795bf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a4fcaa739b7308ad795bf.md index 371f2c984fc..f392f3b8a96 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a4fcaa739b7308ad795bf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a4fcaa739b7308ad795bf.md @@ -1,6 +1,6 @@ --- id: 656a4fcaa739b7308ad795bf -title: Task 44 +title: Tarefa 44 challengeType: 22 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a52680e234b3191131cc5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a52680e234b3191131cc5.md index 72b47d68c11..daea4192956 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a52680e234b3191131cc5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a52680e234b3191131cc5.md @@ -1,6 +1,6 @@ --- id: 656a52680e234b3191131cc5 -title: Task 50 +title: Tarefa 50 challengeType: 19 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a533c5a7e5231e15b93b4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a533c5a7e5231e15b93b4.md index 38b5026c800..19faa2e519d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a533c5a7e5231e15b93b4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a533c5a7e5231e15b93b4.md @@ -1,6 +1,6 @@ --- id: 656a533c5a7e5231e15b93b4 -title: Task 52 +title: Tarefa 52 challengeType: 19 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a549c4d9b91326cfe1863.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a549c4d9b91326cfe1863.md index c0b64b2e76b..e7cc62b602a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a549c4d9b91326cfe1863.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a549c4d9b91326cfe1863.md @@ -1,6 +1,6 @@ --- id: 656a549c4d9b91326cfe1863 -title: Task 55 +title: Tarefa 55 challengeType: 22 dashedName: task-55 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a554956201b329a0d182a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a554956201b329a0d182a.md index 1d715cd957e..266d1b2a209 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a554956201b329a0d182a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a554956201b329a0d182a.md @@ -1,6 +1,6 @@ --- id: 656a554956201b329a0d182a -title: Task 56 +title: Tarefa 56 challengeType: 19 dashedName: task-56 --- @@ -21,7 +21,7 @@ Pick the sentence that uses `this` and `that` correctly. ### --feedback-- -Correct! `This` is for the mouse close by, and `that` for the one farther away. +Correto! `This` is for the mouse close by, and `that` for the one farther away. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab31ebccec247fde7cee4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab31ebccec247fde7cee4.md index f0d12b9bfbb..871552e9776 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab31ebccec247fde7cee4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab31ebccec247fde7cee4.md @@ -1,6 +1,6 @@ --- id: 656ab31ebccec247fde7cee4 -title: Task 63 +title: Tarefa 63 challengeType: 22 dashedName: task-63 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab5a3ee689949124d2e39.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab5a3ee689949124d2e39.md index c786843797e..8cab6f896e2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab5a3ee689949124d2e39.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab5a3ee689949124d2e39.md @@ -1,6 +1,6 @@ --- id: 656ab5a3ee689949124d2e39 -title: Task 68 +title: Tarefa 68 challengeType: 19 dashedName: task-68 --- @@ -41,7 +41,7 @@ All the options show instances where `they` is used to represent multiple people --- -All of the above. +Todas as anteriores. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab7e9be47c04a2518dbed.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab7e9be47c04a2518dbed.md index ed02f465cbe..ea7196d157f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab7e9be47c04a2518dbed.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ab7e9be47c04a2518dbed.md @@ -1,6 +1,6 @@ --- id: 656ab7e9be47c04a2518dbed -title: Task 73 +title: Tarefa 73 challengeType: 19 dashedName: task-73 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656abd3412f31c4c2483de5c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656abd3412f31c4c2483de5c.md index d2acc5d7f01..9e8bff63ca7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656abd3412f31c4c2483de5c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656abd3412f31c4c2483de5c.md @@ -1,6 +1,6 @@ --- id: 656abd3412f31c4c2483de5c -title: Task 80 +title: Tarefa 80 challengeType: 19 dashedName: task-80 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cad88af98af049df17177.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cad88af98af049df17177.md index 631b692f6cf..eb5c7dab70f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cad88af98af049df17177.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cad88af98af049df17177.md @@ -1,6 +1,6 @@ --- id: 656cad88af98af049df17177 -title: Task 82 +title: Tarefa 82 challengeType: 19 dashedName: task-82 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb0b3e4e30f0550131acd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb0b3e4e30f0550131acd.md index 64ae7ef0f15..dd1b697ff74 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb0b3e4e30f0550131acd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb0b3e4e30f0550131acd.md @@ -1,6 +1,6 @@ --- id: 656cb0b3e4e30f0550131acd -title: Task 86 +title: Tarefa 86 challengeType: 22 dashedName: task-86 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb18802ef22057a58db13.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb18802ef22057a58db13.md index 140e2ca067a..b62cef95aba 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb18802ef22057a58db13.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb18802ef22057a58db13.md @@ -1,6 +1,6 @@ --- id: 656cb18802ef22057a58db13 -title: Task 87 +title: Tarefa 87 challengeType: 19 dashedName: task-87 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb2ee9d60f205d362b1de.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb2ee9d60f205d362b1de.md index 9bd4a88bbf9..7188d7be801 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb2ee9d60f205d362b1de.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cb2ee9d60f205d362b1de.md @@ -1,6 +1,6 @@ --- id: 656cb2ee9d60f205d362b1de -title: Task 89 +title: Tarefa 89 challengeType: 19 dashedName: task-89 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cbad538b114095fb14c0e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cbad538b114095fb14c0e.md index 86ba14f893a..073019a70d8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cbad538b114095fb14c0e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cbad538b114095fb14c0e.md @@ -11,7 +11,7 @@ Watch the video below to understand the context of the upcoming lessons. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc35036d0a00fe17e7cee.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc35036d0a00fe17e7cee.md index dd0ecd7b320..09e73795bf3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc35036d0a00fe17e7cee.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc35036d0a00fe17e7cee.md @@ -1,6 +1,6 @@ --- id: 656cc35036d0a00fe17e7cee -title: Task 93 +title: Tarefa 93 challengeType: 22 dashedName: task-93 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc7a3f479f511d56ab246.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc7a3f479f511d56ab246.md index 15abfcbe4d4..990d91cb718 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc7a3f479f511d56ab246.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc7a3f479f511d56ab246.md @@ -1,6 +1,6 @@ --- id: 656cc7a3f479f511d56ab246 -title: Task 102 +title: Tarefa 102 challengeType: 22 dashedName: task-102 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc833fe9c0611feeb5b26.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc833fe9c0611feeb5b26.md index 0c2558ab1c4..824b3165ca5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc833fe9c0611feeb5b26.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cc833fe9c0611feeb5b26.md @@ -1,6 +1,6 @@ --- id: 656cc833fe9c0611feeb5b26 -title: Task 103 +title: Tarefa 103 challengeType: 19 dashedName: task-103 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccd8bafe46d138451d176.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccd8bafe46d138451d176.md index e981474092f..711c98226f8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccd8bafe46d138451d176.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccd8bafe46d138451d176.md @@ -1,6 +1,6 @@ --- id: 656ccd8bafe46d138451d176 -title: Task 111 +title: Tarefa 111 challengeType: 22 dashedName: task-111 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccde87f42ec13b19c5dab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccde87f42ec13b19c5dab.md index 0dc8d49ec42..fb9b4fe0846 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccde87f42ec13b19c5dab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccde87f42ec13b19c5dab.md @@ -1,6 +1,6 @@ --- id: 656ccde87f42ec13b19c5dab -title: Task 112 +title: Tarefa 112 challengeType: 19 dashedName: task-112 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cce4130c4d313e92ed22e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cce4130c4d313e92ed22e.md index 52c4c98e1d3..2b6eb06ad2e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cce4130c4d313e92ed22e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cce4130c4d313e92ed22e.md @@ -1,6 +1,6 @@ --- id: 656cce4130c4d313e92ed22e -title: Task 113 +title: Tarefa 113 challengeType: 19 dashedName: task-113 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccf6255561e1467afd1c6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccf6255561e1467afd1c6.md index cef7dd3fbb9..c94f0eed099 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccf6255561e1467afd1c6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccf6255561e1467afd1c6.md @@ -1,6 +1,6 @@ --- id: 656ccf6255561e1467afd1c6 -title: Task 116 +title: Tarefa 116 challengeType: 19 dashedName: task-116 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccfb763eddb149831854d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccfb763eddb149831854d.md index 2841d680635..e2372ee07d2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccfb763eddb149831854d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656ccfb763eddb149831854d.md @@ -1,6 +1,6 @@ --- id: 656ccfb763eddb149831854d -title: Task 117 +title: Tarefa 117 challengeType: 22 dashedName: task-117 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd061eb49fb14f672f77f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd061eb49fb14f672f77f.md index 725c07e30f1..9c20baa2422 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd061eb49fb14f672f77f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd061eb49fb14f672f77f.md @@ -1,6 +1,6 @@ --- id: 656cd061eb49fb14f672f77f -title: Task 119 +title: Tarefa 119 challengeType: 22 dashedName: task-119 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd118ca4f1115500a4bf8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd118ca4f1115500a4bf8.md index 7f4663a9664..466f9cdd810 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd118ca4f1115500a4bf8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd118ca4f1115500a4bf8.md @@ -1,6 +1,6 @@ --- id: 656cd118ca4f1115500a4bf8 -title: Task 121 +title: Tarefa 121 challengeType: 22 dashedName: task-121 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd31045ce74162adef6c7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd31045ce74162adef6c7.md index 1432637e942..d64e5409a24 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd31045ce74162adef6c7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd31045ce74162adef6c7.md @@ -1,6 +1,6 @@ --- id: 656cd31045ce74162adef6c7 -title: Task 126 +title: Tarefa 126 challengeType: 19 dashedName: task-126 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd4b014d03a1baf452429.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd4b014d03a1baf452429.md index 12792a0def7..0f85b9c728b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd4b014d03a1baf452429.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd4b014d03a1baf452429.md @@ -11,7 +11,7 @@ What the video above to understand the context of the upcoming lessons. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd52f0f43551be96b4640.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd52f0f43551be96b4640.md index 5b224202927..ef8e13ecd7c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd52f0f43551be96b4640.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd52f0f43551be96b4640.md @@ -21,7 +21,7 @@ Tell me where that person is. ### --feedback-- -The phrase is not about asking for someone's location. Try again. +The phrase is not about asking for someone's location. Tente novamente. --- @@ -29,7 +29,7 @@ I see that person. ### --feedback-- -This is partially correct. There is something more. Try again. +This is partially correct. There is something more. Tente novamente. --- @@ -41,7 +41,7 @@ I don't know that person. ### --feedback-- -It's not about not knowing the person, but noticing them. Try again. +It's not about not knowing the person, but noticing them. Tente novamente. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd6a37495961c5f242c5d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd6a37495961c5f242c5d.md index ac9e05a1280..731a812586b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd6a37495961c5f242c5d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd6a37495961c5f242c5d.md @@ -26,7 +26,7 @@ What does Sophie ask Brian after greeting him? ### --feedback-- -Sophie doesn't ask about a place. Try again. +Sophie doesn't ask about a place. Tente novamente. --- @@ -34,7 +34,7 @@ Sophie doesn't ask about a place. Try again. ### --feedback-- -She doesn't ask about his family. Try again. +She doesn't ask about his family. Tente novamente. --- @@ -46,7 +46,7 @@ She doesn't ask about his family. Try again. ### --feedback-- -She doesn’t ask for reasons. Try again. +She doesn’t ask for reasons. Tente novamente. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd7da364a181cb1038846.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd7da364a181cb1038846.md index 4bcc9f3f46d..78a90c42eee 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd7da364a181cb1038846.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd7da364a181cb1038846.md @@ -1,6 +1,6 @@ --- id: 656cd7da364a181cb1038846 -title: Task 131 +title: Tarefa 131 challengeType: 22 dashedName: task-131 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd983328ab41d5bd929d0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd983328ab41d5bd929d0.md index 40d7542f51c..6ce25bfa924 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd983328ab41d5bd929d0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cd983328ab41d5bd929d0.md @@ -1,6 +1,6 @@ --- id: 656cd983328ab41d5bd929d0 -title: Task 134 +title: Tarefa 134 challengeType: 19 dashedName: task-134 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cda3cd706aa1daa128704.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cda3cd706aa1daa128704.md index 0ec1746899c..5566458efe2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cda3cd706aa1daa128704.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656cda3cd706aa1daa128704.md @@ -1,6 +1,6 @@ --- id: 656cda3cd706aa1daa128704 -title: Task 136 +title: Tarefa 136 challengeType: 22 dashedName: task-136 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1831a6a2fe0465ea9488.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1831a6a2fe0465ea9488.md index 15ddc16c9fe..bcd839a077d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1831a6a2fe0465ea9488.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1831a6a2fe0465ea9488.md @@ -1,6 +1,6 @@ --- id: 656d1831a6a2fe0465ea9488 -title: Task 140 +title: Tarefa 140 challengeType: 19 dashedName: task-140 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1936ab6cfb04e2ca6944.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1936ab6cfb04e2ca6944.md index b2d80780401..12a32195bca 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1936ab6cfb04e2ca6944.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1936ab6cfb04e2ca6944.md @@ -1,6 +1,6 @@ --- id: 656d1936ab6cfb04e2ca6944 -title: Task 141 +title: Tarefa 141 challengeType: 22 dashedName: task-141 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1a520285050552702fc1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1a520285050552702fc1.md index f0046b5efd0..7f0728479a1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1a520285050552702fc1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1a520285050552702fc1.md @@ -1,6 +1,6 @@ --- id: 656d1a520285050552702fc1 -title: Task 144 +title: Tarefa 144 challengeType: 19 dashedName: task-144 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1c98a6bd5505fd346b50.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1c98a6bd5505fd346b50.md index 44f45bbfd7b..6091a0fcc75 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1c98a6bd5505fd346b50.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d1c98a6bd5505fd346b50.md @@ -1,6 +1,6 @@ --- id: 656d1c98a6bd5505fd346b50 -title: Task 147 +title: Tarefa 147 challengeType: 19 dashedName: task-147 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d23d22a488510bca0e418.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d23d22a488510bca0e418.md index 08b72a11e11..b0dcfa3eb69 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d23d22a488510bca0e418.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d23d22a488510bca0e418.md @@ -11,7 +11,7 @@ What the video above to understand the context of the upcoming lessons. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d25e0c5d5aa11ade33754.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d25e0c5d5aa11ade33754.md index cfceb4f927b..1fd87200fa7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d25e0c5d5aa11ade33754.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d25e0c5d5aa11ade33754.md @@ -1,6 +1,6 @@ --- id: 656d25e0c5d5aa11ade33754 -title: Task 149 +title: Tarefa 149 challengeType: 19 dashedName: task-149 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d27271410d4125ee2ad5a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d27271410d4125ee2ad5a.md index 84590bd1830..835086c3d8a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d27271410d4125ee2ad5a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d27271410d4125ee2ad5a.md @@ -1,6 +1,6 @@ --- id: 656d27271410d4125ee2ad5a -title: Task 153 +title: Tarefa 153 challengeType: 19 dashedName: task-153 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d27a603926f1288bafcc0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d27a603926f1288bafcc0.md index a8234429956..359431ba675 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d27a603926f1288bafcc0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d27a603926f1288bafcc0.md @@ -1,6 +1,6 @@ --- id: 656d27a603926f1288bafcc0 -title: Task 154 +title: Tarefa 154 challengeType: 22 dashedName: task-154 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d299e9d0027131875568f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d299e9d0027131875568f.md index af624f44a26..9b658bed8ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d299e9d0027131875568f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d299e9d0027131875568f.md @@ -1,6 +1,6 @@ --- id: 656d299e9d0027131875568f -title: Task 157 +title: Tarefa 157 challengeType: 19 dashedName: task-157 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2bc10f29b413d1a843d5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2bc10f29b413d1a843d5.md index bc369218ed2..55cc9a8800e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2bc10f29b413d1a843d5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2bc10f29b413d1a843d5.md @@ -1,6 +1,6 @@ --- id: 656d2bc10f29b413d1a843d5 -title: Task 161 +title: Tarefa 161 challengeType: 19 dashedName: task-161 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2c2fedbd5f14055b7e7b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2c2fedbd5f14055b7e7b.md index 7067e949380..e56c5b918cc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2c2fedbd5f14055b7e7b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2c2fedbd5f14055b7e7b.md @@ -1,6 +1,6 @@ --- id: 656d2c2fedbd5f14055b7e7b -title: Task 162 +title: Tarefa 162 challengeType: 19 dashedName: task-162 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2c94279eb6143485eac6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2c94279eb6143485eac6.md index 847080ca841..ea70deeb44a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2c94279eb6143485eac6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2c94279eb6143485eac6.md @@ -1,6 +1,6 @@ --- id: 656d2c94279eb6143485eac6 -title: Task 163 +title: Tarefa 163 challengeType: 22 dashedName: task-163 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2d814b60b6149a03c699.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2d814b60b6149a03c699.md index 20b1614b149..8ae55051646 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2d814b60b6149a03c699.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656d2d814b60b6149a03c699.md @@ -1,6 +1,6 @@ --- id: 656d2d814b60b6149a03c699 -title: Task 165 +title: Tarefa 165 challengeType: 19 dashedName: task-165 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657bcf58b87d01890f9bdc93.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657bcf58b87d01890f9bdc93.md index aacfa9919aa..69dedf19846 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657bcf58b87d01890f9bdc93.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657bcf58b87d01890f9bdc93.md @@ -1,6 +1,6 @@ --- id: 657bcf58b87d01890f9bdc93 -title: Task 28 +title: Tarefa 28 challengeType: 19 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index bdc5248146f..cad5012d3a6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Tarefa 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606682f3fbb93838673920d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606682f3fbb93838673920d.md index b61451ff3b5..9040c310605 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606682f3fbb93838673920d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606682f3fbb93838673920d.md @@ -9,6 +9,6 @@ dashedName: dialogue-1-analyzing-api-documentation Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66066c563917c5874b792337.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66066c563917c5874b792337.md index 02558eb6b89..c4a634ef5fd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66066c563917c5874b792337.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66066c563917c5874b792337.md @@ -1,6 +1,6 @@ --- id: 66066c563917c5874b792337 -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660681a717d84e89da14f6f4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660681a717d84e89da14f6f4.md index f1925c891af..4618c694f9c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660681a717d84e89da14f6f4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660681a717d84e89da14f6f4.md @@ -1,6 +1,6 @@ --- id: 660681a717d84e89da14f6f4 -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660682b572c0bb8aa3075feb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660682b572c0bb8aa3075feb.md index a61b4d0ff51..f7e77a91706 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660682b572c0bb8aa3075feb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660682b572c0bb8aa3075feb.md @@ -1,6 +1,6 @@ --- id: 660682b572c0bb8aa3075feb -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606838ecf64478b53a51496.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606838ecf64478b53a51496.md index dc557c86553..00dea4e66dc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606838ecf64478b53a51496.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606838ecf64478b53a51496.md @@ -1,6 +1,6 @@ --- id: 6606838ecf64478b53a51496 -title: Task 4 +title: Tarefa 4 challengeType: 19 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660683e649f8fa8bbd5baac5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660683e649f8fa8bbd5baac5.md index d9be2e060cb..ce0a7b27572 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660683e649f8fa8bbd5baac5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660683e649f8fa8bbd5baac5.md @@ -1,6 +1,6 @@ --- id: 660683e649f8fa8bbd5baac5 -title: Task 5 +title: Tarefa 5 challengeType: 22 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068414094b3a8c10a4770d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068414094b3a8c10a4770d.md index b98a751c030..6121e369e68 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068414094b3a8c10a4770d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068414094b3a8c10a4770d.md @@ -1,6 +1,6 @@ --- id: 66068414094b3a8c10a4770d -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606846eba453e8c7bacb2f7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606846eba453e8c7bacb2f7.md index 47f3082df75..bdc171f4c4c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606846eba453e8c7bacb2f7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606846eba453e8c7bacb2f7.md @@ -1,6 +1,6 @@ --- id: 6606846eba453e8c7bacb2f7 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660684bfc24bf48cfaaf9cfa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660684bfc24bf48cfaaf9cfa.md index 38842b24182..8ffb09d5d7a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660684bfc24bf48cfaaf9cfa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660684bfc24bf48cfaaf9cfa.md @@ -1,6 +1,6 @@ --- id: 660684bfc24bf48cfaaf9cfa -title: Task 8 +title: Tarefa 8 challengeType: 22 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660686845b5e788def3527ca.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660686845b5e788def3527ca.md index f4d649fdf54..bd21c0b0b2d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660686845b5e788def3527ca.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660686845b5e788def3527ca.md @@ -1,6 +1,6 @@ --- id: 660686845b5e788def3527ca -title: Task 9 +title: Tarefa 9 challengeType: 22 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068a6d0bb2aa90f0d93979.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068a6d0bb2aa90f0d93979.md index fdaa503fb24..71f8f3168c0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068a6d0bb2aa90f0d93979.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068a6d0bb2aa90f0d93979.md @@ -9,6 +9,6 @@ dashedName: dialogue-2-analyzing-code-documentation-for-functions Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068ad667567091500128c5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068ad667567091500128c5.md index 7118afbc053..9c51e4bf1bc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068ad667567091500128c5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068ad667567091500128c5.md @@ -1,6 +1,6 @@ --- id: 66068ad667567091500128c5 -title: Task 10 +title: Tarefa 10 challengeType: 22 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068b650b681c91de9e19a0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068b650b681c91de9e19a0.md index e54ba7efeb1..b15aa277ba2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068b650b681c91de9e19a0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068b650b681c91de9e19a0.md @@ -1,6 +1,6 @@ --- id: 66068b650b681c91de9e19a0 -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068bf9c9046292705b856d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068bf9c9046292705b856d.md index 06b97752cbe..96ad482746c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068bf9c9046292705b856d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068bf9c9046292705b856d.md @@ -1,6 +1,6 @@ --- id: 66068bf9c9046292705b856d -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068c5cfc7a4992f2574ab2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068c5cfc7a4992f2574ab2.md index d0598c0aefa..2bac8840f2e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068c5cfc7a4992f2574ab2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068c5cfc7a4992f2574ab2.md @@ -1,6 +1,6 @@ --- id: 66068c5cfc7a4992f2574ab2 -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068d4033a07d9393291ef0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068d4033a07d9393291ef0.md index d269b77a5a2..3aef6d59d3d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068d4033a07d9393291ef0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068d4033a07d9393291ef0.md @@ -1,6 +1,6 @@ --- id: 66068d4033a07d9393291ef0 -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068f5b2b7dda9450a7cc2c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068f5b2b7dda9450a7cc2c.md index a4b36656641..2760d8af999 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068f5b2b7dda9450a7cc2c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068f5b2b7dda9450a7cc2c.md @@ -1,6 +1,6 @@ --- id: 66068f5b2b7dda9450a7cc2c -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068fc7aa2fe094c5cb84bd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068fc7aa2fe094c5cb84bd.md index 4b0ce8e6c1e..df4e0f38f38 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068fc7aa2fe094c5cb84bd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66068fc7aa2fe094c5cb84bd.md @@ -1,6 +1,6 @@ --- id: 66068fc7aa2fe094c5cb84bd -title: Task 16 +title: Tarefa 16 challengeType: 22 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606906b3f31fc953f1ee3b6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606906b3f31fc953f1ee3b6.md index 35caf222d7e..57dbed2b73b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606906b3f31fc953f1ee3b6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606906b3f31fc953f1ee3b6.md @@ -1,6 +1,6 @@ --- id: 6606906b3f31fc953f1ee3b6 -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660694cf7803c598ce999171.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660694cf7803c598ce999171.md index 04f23c7eafe..b7ae08e203c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660694cf7803c598ce999171.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660694cf7803c598ce999171.md @@ -9,6 +9,6 @@ dashedName: dialogue-3-analyzing-code-documentation-for-classes-and-objects Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606952c28640e9941c8fa29.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606952c28640e9941c8fa29.md index ea74fe1ac27..ea95b7c9fa2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606952c28640e9941c8fa29.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606952c28640e9941c8fa29.md @@ -1,6 +1,6 @@ --- id: 6606952c28640e9941c8fa29 -title: Task 18 +title: Tarefa 18 challengeType: 22 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660695c672854899d6862834.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660695c672854899d6862834.md index 0da87beca81..6112ff436b9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660695c672854899d6862834.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660695c672854899d6862834.md @@ -1,6 +1,6 @@ --- id: 660695c672854899d6862834 -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660696292c16659a5e9ccf81.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660696292c16659a5e9ccf81.md index 880121fa041..8c89cd9e4fe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660696292c16659a5e9ccf81.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660696292c16659a5e9ccf81.md @@ -1,6 +1,6 @@ --- id: 660696292c16659a5e9ccf81 -title: Task 20 +title: Tarefa 20 challengeType: 22 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660696cce3e4e79af4612466.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660696cce3e4e79af4612466.md index 92122ff046f..96af09d9867 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660696cce3e4e79af4612466.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660696cce3e4e79af4612466.md @@ -1,6 +1,6 @@ --- id: 660696cce3e4e79af4612466 -title: Task 21 +title: Tarefa 21 challengeType: 19 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66069719acca7d9b59499ce9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66069719acca7d9b59499ce9.md index 6080eae806b..606ab40445d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66069719acca7d9b59499ce9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/66069719acca7d9b59499ce9.md @@ -1,6 +1,6 @@ --- id: 66069719acca7d9b59499ce9 -title: Task 22 +title: Tarefa 22 challengeType: 22 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606977e8f0b509bdac39012.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606977e8f0b509bdac39012.md index 76a20dddbc4..0147f9fe2e0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606977e8f0b509bdac39012.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606977e8f0b509bdac39012.md @@ -1,6 +1,6 @@ --- id: 6606977e8f0b509bdac39012 -title: Task 23 +title: Tarefa 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660697f307c6559c60e976f7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660697f307c6559c60e976f7.md index a79a08f419d..454de8f4c0c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660697f307c6559c60e976f7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/660697f307c6559c60e976f7.md @@ -1,6 +1,6 @@ --- id: 660697f307c6559c60e976f7 -title: Task 24 +title: Tarefa 24 challengeType: 22 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606989c34f0be9d141130b1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606989c34f0be9d141130b1.md index ab753e7750c..d18239125d8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606989c34f0be9d141130b1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/6606989c34f0be9d141130b1.md @@ -1,6 +1,6 @@ --- id: 6606989c34f0be9d141130b1 -title: Task 25 +title: Tarefa 25 challengeType: 22 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index 170686aaf4a..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/655c0feadb1dd77f6cda623f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/655c0feadb1dd77f6cda623f.md index 0aabf045ed6..900f62dad20 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/655c0feadb1dd77f6cda623f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/655c0feadb1dd77f6cda623f.md @@ -7,11 +7,11 @@ dashedName: dialogue-1-a-job-interview # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b12e7c306334b7c320221.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b12e7c306334b7c320221.md index 4dfe3e04aaa..2972155d4d6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b12e7c306334b7c320221.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b12e7c306334b7c320221.md @@ -1,6 +1,6 @@ --- id: 657b12e7c306334b7c320221 -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b133afcef714e542b557a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b133afcef714e542b557a.md index adc48b208a8..a60bc59bdff 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b133afcef714e542b557a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b133afcef714e542b557a.md @@ -1,6 +1,6 @@ --- id: 657b133afcef714e542b557a -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b135e9029fb4f8141e40c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b135e9029fb4f8141e40c.md index 072da02082a..35528e01536 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b135e9029fb4f8141e40c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b135e9029fb4f8141e40c.md @@ -1,6 +1,6 @@ --- id: 657b135e9029fb4f8141e40c -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b145976723b56a97b8dda.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b145976723b56a97b8dda.md index 0e97a200892..735c1262339 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b145976723b56a97b8dda.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b145976723b56a97b8dda.md @@ -1,6 +1,6 @@ --- id: 657b145976723b56a97b8dda -title: Task 17 +title: Tarefa 17 challengeType: 19 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b153ac677705c7059530d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b153ac677705c7059530d.md index 4b736163c22..6b5ff9d0e1b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b153ac677705c7059530d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b153ac677705c7059530d.md @@ -1,6 +1,6 @@ --- id: 657b153ac677705c7059530d -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1985ae17886b05b382b1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1985ae17886b05b382b1.md index 30735a3f856..cbdbee16e9b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1985ae17886b05b382b1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1985ae17886b05b382b1.md @@ -1,6 +1,6 @@ --- id: 657b1985ae17886b05b382b1 -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b19bf7b32af6caf763ef7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b19bf7b32af6caf763ef7.md index cedb92f4f31..64018f08963 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b19bf7b32af6caf763ef7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b19bf7b32af6caf763ef7.md @@ -1,6 +1,6 @@ --- id: 657b19bf7b32af6caf763ef7 -title: Task 27 +title: Tarefa 27 challengeType: 19 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a03df3ec46eca276046.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a03df3ec46eca276046.md index b7c47cc5843..ba2953212fd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a03df3ec46eca276046.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a03df3ec46eca276046.md @@ -1,6 +1,6 @@ --- id: 657b1a03df3ec46eca276046 -title: Task 25 +title: Tarefa 25 challengeType: 22 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a27dc6daf6ffd52ff1f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a27dc6daf6ffd52ff1f.md index 8a45d2194c6..483de973c43 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a27dc6daf6ffd52ff1f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a27dc6daf6ffd52ff1f.md @@ -1,6 +1,6 @@ --- id: 657b1a27dc6daf6ffd52ff1f -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a637e4dc571f8f4d3d7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a637e4dc571f8f4d3d7.md index c5e0024460d..2d162f2a22e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a637e4dc571f8f4d3d7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a637e4dc571f8f4d3d7.md @@ -1,6 +1,6 @@ --- id: 657b1a637e4dc571f8f4d3d7 -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a9581015573806e1e20.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a9581015573806e1e20.md index 9d0b108853f..ffa778d4b2a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a9581015573806e1e20.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1a9581015573806e1e20.md @@ -1,6 +1,6 @@ --- id: 657b1a9581015573806e1e20 -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1cc072206e7ac3db88b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1cc072206e7ac3db88b8.md index 7e024b2df79..dbd6efb0441 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1cc072206e7ac3db88b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1cc072206e7ac3db88b8.md @@ -1,6 +1,6 @@ --- id: 657b1cc072206e7ac3db88b8 -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1d4ec0e2587e8bcc95f7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1d4ec0e2587e8bcc95f7.md index a3c8f8f15ef..f58c6b64db8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1d4ec0e2587e8bcc95f7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1d4ec0e2587e8bcc95f7.md @@ -7,11 +7,11 @@ dashedName: dialogue-3-two-workmates-talk-about-their-backgrounds # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1dfec76149836ea5c7d0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1dfec76149836ea5c7d0.md index 1558b0ce655..e796393a0dc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1dfec76149836ea5c7d0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1dfec76149836ea5c7d0.md @@ -1,6 +1,6 @@ --- id: 657b1dfec76149836ea5c7d0 -title: Task 38 +title: Tarefa 38 challengeType: 22 dashedName: task-38 --- @@ -11,7 +11,7 @@ dashedName: task-38 There are some verbs you can't use `didn't` to create negative sentences in the past. The verb `to be`is one of them. -If you want to create a negative sentence using the verb `to be` in the past, simply add `not` after `was` or `were`. For example: +If you want to create a negative sentence using the verb `to be` in the past, simply add `not` after `was` or `were`. Por exemplo: `It was working normally` -> `It wasn't working normally`. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e2fad2ffe84ab420a56.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e2fad2ffe84ab420a56.md index 10f1ac0a4bd..49615e3e0b2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e2fad2ffe84ab420a56.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e2fad2ffe84ab420a56.md @@ -1,6 +1,6 @@ --- id: 657b1e2fad2ffe84ab420a56 -title: Task 37 +title: Tarefa 37 challengeType: 19 dashedName: task-37 --- @@ -10,7 +10,7 @@ dashedName: task-37 # --description-- For most verbs, if you want to make a negative sentence in the past tense, simply put `didn't` in front of the main verb. `Didn't` is short for `did not`. -Remember that the main verb stays in its simple form. Only the auxiliary verb `did` is conjugated. For example: +Remember that the main verb stays in its simple form. Only the auxiliary verb `did` is conjugated. Por exemplo: **Affirmative sentence in the past**: `I worked yesterday` - The Verb `work` is conjugated to the past. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e66159fec86336a737b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e66159fec86336a737b.md index e47ab5f9fc9..46d2e163d0e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e66159fec86336a737b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e66159fec86336a737b.md @@ -1,6 +1,6 @@ --- id: 657b1e66159fec86336a737b -title: Task 43 +title: Tarefa 43 challengeType: 19 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e9a62603587747f7f45.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e9a62603587747f7f45.md index f3aac7756f0..e770dc0aefc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e9a62603587747f7f45.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1e9a62603587747f7f45.md @@ -1,6 +1,6 @@ --- id: 657b1e9a62603587747f7f45 -title: Task 47 +title: Tarefa 47 challengeType: 19 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 30a0f06a1af..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Tarefa 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. Esta tarefa é uma revisão. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --frase-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## --espaços em branco-- - -`didn't` - -### --feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f0585d48f8ac0b19654.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f0585d48f8ac0b19654.md index 8ded6824d44..7dfdf118a54 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f0585d48f8ac0b19654.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f0585d48f8ac0b19654.md @@ -1,6 +1,6 @@ --- id: 657b1f0585d48f8ac0b19654 -title: Task 48 +title: Tarefa 48 challengeType: 22 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f598f63008c8bdb20b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f598f63008c8bdb20b8.md index bd3b637c6e4..b1237fe724a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f598f63008c8bdb20b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f598f63008c8bdb20b8.md @@ -1,6 +1,6 @@ --- id: 657b1f598f63008c8bdb20b8 -title: Task 49 +title: Tarefa 49 challengeType: 19 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f981cd42e8dc3b282d9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f981cd42e8dc3b282d9.md index a0bb7fd4b2e..680bb8e31ac 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f981cd42e8dc3b282d9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1f981cd42e8dc3b282d9.md @@ -1,6 +1,6 @@ --- id: 657b1f981cd42e8dc3b282d9 -title: Task 50 +title: Tarefa 50 challengeType: 19 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1fe950c0df90346e5d12.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1fe950c0df90346e5d12.md index 17368d060d4..69468f44391 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1fe950c0df90346e5d12.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1fe950c0df90346e5d12.md @@ -1,6 +1,6 @@ --- id: 657b1fe950c0df90346e5d12 -title: Task 51 +title: Tarefa 51 challengeType: 22 dashedName: task-51 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b201372864e91d4f5bb53.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b201372864e91d4f5bb53.md index aaa7fc8f195..852ee020add 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b201372864e91d4f5bb53.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b201372864e91d4f5bb53.md @@ -1,6 +1,6 @@ --- id: 657b201372864e91d4f5bb53 -title: Task 52 +title: Tarefa 52 challengeType: 22 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b20338e0802931673c1e1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b20338e0802931673c1e1.md index 8def5acf8c5..0c193c9dc82 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b20338e0802931673c1e1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b20338e0802931673c1e1.md @@ -1,6 +1,6 @@ --- id: 657b20338e0802931673c1e1 -title: Task 53 +title: Tarefa 53 challengeType: 22 dashedName: task-53 --- @@ -13,7 +13,7 @@ Regular verbs that end with `e` have a simple rule for conjugating in the past t This rule helps to keep the pronunciation clear and avoids the addition of an extra syllable that could complicate the word's pronunciation. -For example: +Por exemplo: `live` becomes `lived`. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b20985d315095e5c3851d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b20985d315095e5c3851d.md index 072f25e5205..bdfe7f86fdb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b20985d315095e5c3851d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b20985d315095e5c3851d.md @@ -1,6 +1,6 @@ --- id: 657b20985d315095e5c3851d -title: Task 55 +title: Tarefa 55 challengeType: 19 dashedName: task-55 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b21e28a01039cb27b4f13.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b21e28a01039cb27b4f13.md index c5850d3d27c..8d17515bca0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b21e28a01039cb27b4f13.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b21e28a01039cb27b4f13.md @@ -1,6 +1,6 @@ --- id: 657b21e28a01039cb27b4f13 -title: Task 58 +title: Tarefa 58 challengeType: 19 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b221b2ab0ac9e18a173ef.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b221b2ab0ac9e18a173ef.md index e3fdfd57035..dfe3cafb76d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b221b2ab0ac9e18a173ef.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b221b2ab0ac9e18a173ef.md @@ -1,6 +1,6 @@ --- id: 657b221b2ab0ac9e18a173ef -title: Task 59 +title: Tarefa 59 challengeType: 22 dashedName: task-59 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b223e41ce6b9f9a01d214.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b223e41ce6b9f9a01d214.md index b99229e0357..6abacc18810 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b223e41ce6b9f9a01d214.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b223e41ce6b9f9a01d214.md @@ -1,6 +1,6 @@ --- id: 657b223e41ce6b9f9a01d214 -title: Task 60 +title: Tarefa 60 challengeType: 22 dashedName: task-60 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b227f7ad32ea17e2cdf28.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b227f7ad32ea17e2cdf28.md index b67a65e9cfd..412d30b399b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b227f7ad32ea17e2cdf28.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b227f7ad32ea17e2cdf28.md @@ -7,15 +7,15 @@ dashedName: dialogue-4-a-developer-with-a-different-background # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2310b8cd52a4f15c1818.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2310b8cd52a4f15c1818.md index ab66ae83ae4..06c6eea34ff 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2310b8cd52a4f15c1818.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2310b8cd52a4f15c1818.md @@ -1,6 +1,6 @@ --- id: 657b2310b8cd52a4f15c1818 -title: Task 65 +title: Tarefa 65 challengeType: 19 dashedName: task-65 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2340be1593a6517fe77b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2340be1593a6517fe77b.md index b3ccce50387..3f767b51b60 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2340be1593a6517fe77b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2340be1593a6517fe77b.md @@ -1,6 +1,6 @@ --- id: 657b2340be1593a6517fe77b -title: Task 66 +title: Tarefa 66 challengeType: 22 dashedName: task-66 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b236aa1eb9fa7b209aa03.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b236aa1eb9fa7b209aa03.md index ebf62a31411..9a801f7576f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b236aa1eb9fa7b209aa03.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b236aa1eb9fa7b209aa03.md @@ -1,6 +1,6 @@ --- id: 657b236aa1eb9fa7b209aa03 -title: Task 67 +title: Tarefa 67 challengeType: 19 dashedName: task-67 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23a413d28da927e087ca.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23a413d28da927e087ca.md index 85c334a17e9..e6fdd594b6c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23a413d28da927e087ca.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23a413d28da927e087ca.md @@ -1,6 +1,6 @@ --- id: 657b23a413d28da927e087ca -title: Task 68 +title: Tarefa 68 challengeType: 22 dashedName: task-68 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23bc0e32f9aa9c62eb82.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23bc0e32f9aa9c62eb82.md index 9dfaac3c9fe..f0d0f996d9e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23bc0e32f9aa9c62eb82.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23bc0e32f9aa9c62eb82.md @@ -1,6 +1,6 @@ --- id: 657b23bc0e32f9aa9c62eb82 -title: Task 69 +title: Tarefa 69 challengeType: 19 dashedName: task-69 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23f03b449aac2c517089.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23f03b449aac2c517089.md index 302ba6926a0..8b0c70fa549 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23f03b449aac2c517089.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b23f03b449aac2c517089.md @@ -1,6 +1,6 @@ --- id: 657b23f03b449aac2c517089 -title: Task 70 +title: Tarefa 70 challengeType: 22 dashedName: task-70 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b242d06512dadaea55056.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b242d06512dadaea55056.md index 15eb0d32874..7ccb11a863c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b242d06512dadaea55056.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b242d06512dadaea55056.md @@ -1,6 +1,6 @@ --- id: 657b242d06512dadaea55056 -title: Task 72 +title: Tarefa 72 challengeType: 19 dashedName: task-72 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24542024c8af092cd6c4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24542024c8af092cd6c4.md index f285c2f71b9..a1a74099eff 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24542024c8af092cd6c4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24542024c8af092cd6c4.md @@ -1,6 +1,6 @@ --- id: 657b24542024c8af092cd6c4 -title: Task 73 +title: Tarefa 73 challengeType: 22 dashedName: task-73 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24774d8cdab052ffe2a6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24774d8cdab052ffe2a6.md index 1517130d91c..0895ff9be98 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24774d8cdab052ffe2a6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24774d8cdab052ffe2a6.md @@ -1,6 +1,6 @@ --- id: 657b24774d8cdab052ffe2a6 -title: Task 71 +title: Tarefa 71 challengeType: 22 dashedName: task-71 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24a500800cb1c6945da9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24a500800cb1c6945da9.md index d5e8b12ca12..bbe992ffaab 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24a500800cb1c6945da9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b24a500800cb1c6945da9.md @@ -1,6 +1,6 @@ --- id: 657b24a500800cb1c6945da9 -title: Task 74 +title: Tarefa 74 challengeType: 22 dashedName: task-74 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2be1b19500c63fc1a467.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2be1b19500c63fc1a467.md index 0fdb471f922..dab04121d1b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2be1b19500c63fc1a467.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2be1b19500c63fc1a467.md @@ -1,6 +1,6 @@ --- id: 657b2be1b19500c63fc1a467 -title: Task 75 +title: Tarefa 75 challengeType: 22 dashedName: task-75 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2c040bb5f6c77fa5df80.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2c040bb5f6c77fa5df80.md index f108ba06217..f5f5f6e04a1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2c040bb5f6c77fa5df80.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2c040bb5f6c77fa5df80.md @@ -1,6 +1,6 @@ --- id: 657b2c040bb5f6c77fa5df80 -title: Task 76 +title: Tarefa 76 challengeType: 22 dashedName: task-76 --- @@ -9,7 +9,7 @@ dashedName: task-76 # --description-- -This task is a review exercise. You'll be filling in blanks with words you're already familiar with. +Esta tarefa é um exercício de revisão. You'll be filling in blanks with words you're already familiar with. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2d618b8851cc5baf9490.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2d618b8851cc5baf9490.md index a2f78885faa..e8f0d578476 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2d618b8851cc5baf9490.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2d618b8851cc5baf9490.md @@ -1,6 +1,6 @@ --- id: 657b2d618b8851cc5baf9490 -title: Task 77 +title: Tarefa 77 challengeType: 22 dashedName: task-77 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2d9cb974dace59024964.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2d9cb974dace59024964.md index b8894611cc4..f4f712956ed 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2d9cb974dace59024964.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2d9cb974dace59024964.md @@ -1,6 +1,6 @@ --- id: 657b2d9cb974dace59024964 -title: Task 78 +title: Tarefa 78 challengeType: 19 dashedName: task-78 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2dd7745fdcd03e5160f4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2dd7745fdcd03e5160f4.md index fc7f334bdee..997f9e2749e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2dd7745fdcd03e5160f4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2dd7745fdcd03e5160f4.md @@ -7,11 +7,11 @@ dashedName: dialogue-5-anna-talks-about-her-experience # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2e0666d4a9d1b851f90e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2e0666d4a9d1b851f90e.md index 01ce61b367c..89857b97667 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2e0666d4a9d1b851f90e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2e0666d4a9d1b851f90e.md @@ -1,6 +1,6 @@ --- id: 657b2e0666d4a9d1b851f90e -title: Task 79 +title: Tarefa 79 challengeType: 19 dashedName: task-79 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2ec6c054efd71e503a27.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2ec6c054efd71e503a27.md index be609d2bd36..4f068c092cb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2ec6c054efd71e503a27.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2ec6c054efd71e503a27.md @@ -1,6 +1,6 @@ --- id: 657b2ec6c054efd71e503a27 -title: Task 80 +title: Tarefa 80 challengeType: 19 dashedName: task-80 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2eeb31e435d89ecce6f3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2eeb31e435d89ecce6f3.md index 15316d28ae2..670532c04e6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2eeb31e435d89ecce6f3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2eeb31e435d89ecce6f3.md @@ -1,6 +1,6 @@ --- id: 657b2eeb31e435d89ecce6f3 -title: Task 81 +title: Tarefa 81 challengeType: 22 dashedName: task-81 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f0b3bcfe7d9f4151854.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f0b3bcfe7d9f4151854.md index 20e48cd03d9..658d4d8e5c8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f0b3bcfe7d9f4151854.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f0b3bcfe7d9f4151854.md @@ -1,6 +1,6 @@ --- id: 657b2f0b3bcfe7d9f4151854 -title: Task 82 +title: Tarefa 82 challengeType: 19 dashedName: task-82 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f3bf7a2cbdb58d959d5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f3bf7a2cbdb58d959d5.md index a76666c4b62..320f87ee973 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f3bf7a2cbdb58d959d5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f3bf7a2cbdb58d959d5.md @@ -1,6 +1,6 @@ --- id: 657b2f3bf7a2cbdb58d959d5 -title: Task 83 +title: Tarefa 83 challengeType: 19 dashedName: task-83 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f6cb66826dcbac08094.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f6cb66826dcbac08094.md index b3acf467454..a8ff76216bd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f6cb66826dcbac08094.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2f6cb66826dcbac08094.md @@ -1,6 +1,6 @@ --- id: 657b2f6cb66826dcbac08094 -title: Task 84 +title: Tarefa 84 challengeType: 19 dashedName: task-84 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fa89ddc20de629ca21f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fa89ddc20de629ca21f.md index 1505d07a916..7333e7f8424 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fa89ddc20de629ca21f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fa89ddc20de629ca21f.md @@ -1,6 +1,6 @@ --- id: 657b2fa89ddc20de629ca21f -title: Task 85 +title: Tarefa 85 challengeType: 22 dashedName: task-85 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fc9c0f96bdfddfce4d9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fc9c0f96bdfddfce4d9.md index 3083c9d372b..e6a43de7291 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fc9c0f96bdfddfce4d9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fc9c0f96bdfddfce4d9.md @@ -1,6 +1,6 @@ --- id: 657b2fc9c0f96bdfddfce4d9 -title: Task 86 +title: Tarefa 86 challengeType: 22 dashedName: task-86 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fea728c2be14a8a98c4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fea728c2be14a8a98c4.md index 8adba8158d2..43d5f56e87d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fea728c2be14a8a98c4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b2fea728c2be14a8a98c4.md @@ -1,6 +1,6 @@ --- id: 657b2fea728c2be14a8a98c4 -title: Task 87 +title: Tarefa 87 challengeType: 19 dashedName: task-87 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b3026ff79fbe2dda6cb39.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b3026ff79fbe2dda6cb39.md index 621aa5d67d4..cf5b9ad8b70 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b3026ff79fbe2dda6cb39.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b3026ff79fbe2dda6cb39.md @@ -1,6 +1,6 @@ --- id: 657b3026ff79fbe2dda6cb39 -title: Task 88 +title: Tarefa 88 challengeType: 19 dashedName: task-88 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b306fe94f29e4b4aa9105.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b306fe94f29e4b4aa9105.md index 1fddaaa1927..497c84434fb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b306fe94f29e4b4aa9105.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b306fe94f29e4b4aa9105.md @@ -1,6 +1,6 @@ --- id: 657b306fe94f29e4b4aa9105 -title: Task 89 +title: Tarefa 89 challengeType: 19 dashedName: task-89 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b30ac03b523e6640deaf1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b30ac03b523e6640deaf1.md index 901c313ae13..56c25060029 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b30ac03b523e6640deaf1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b30ac03b523e6640deaf1.md @@ -1,6 +1,6 @@ --- id: 657b30ac03b523e6640deaf1 -title: Task 90 +title: Tarefa 90 challengeType: 22 dashedName: task-90 --- @@ -10,7 +10,7 @@ Anna: Not right away. I worked in a general HR role at a non-tech company first, # --description-- -This task is a review exercise. You will practice filling in the blanks with words that you have already learned. +Esta tarefa é um exercício de revisão. You will practice filling in the blanks with words that you have already learned. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b30e1b9f035e7e656fd01.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b30e1b9f035e7e656fd01.md index 988193e43d0..0f7655697eb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b30e1b9f035e7e656fd01.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b30e1b9f035e7e656fd01.md @@ -1,6 +1,6 @@ --- id: 657b30e1b9f035e7e656fd01 -title: Task 91 +title: Tarefa 91 challengeType: 19 dashedName: task-91 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b315533e4edeba65111b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b315533e4edeba65111b8.md index 8ee3484925c..e5def15c198 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b315533e4edeba65111b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b315533e4edeba65111b8.md @@ -1,6 +1,6 @@ --- id: 657b315533e4edeba65111b8 -title: Task 92 +title: Tarefa 92 challengeType: 19 dashedName: task-92 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b46c9be150f577f5a1086.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b46c9be150f577f5a1086.md index 702c9a6f63f..20e0e99fd86 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b46c9be150f577f5a1086.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b46c9be150f577f5a1086.md @@ -7,11 +7,11 @@ dashedName: dialogue-2-another-job-interview # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f22f7d84784d8bd129c9a4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f22f7d84784d8bd129c9a4.md index 4e085cb72ba..380033f16ca 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f22f7d84784d8bd129c9a4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f22f7d84784d8bd129c9a4.md @@ -1,6 +1,6 @@ --- id: 65f22f7d84784d8bd129c9a4 -title: Task 34 +title: Tarefa 34 challengeType: 22 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f230854698ec8c68b67fa4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f230854698ec8c68b67fa4.md index d547fb21e14..bfd430e2400 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f230854698ec8c68b67fa4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f230854698ec8c68b67fa4.md @@ -1,6 +1,6 @@ --- id: 65f230854698ec8c68b67fa4 -title: Task 35 +title: Tarefa 35 challengeType: 22 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f310fc37e701bfa451be47.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f310fc37e701bfa451be47.md index 9690579ab04..967df778c47 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f310fc37e701bfa451be47.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f310fc37e701bfa451be47.md @@ -1,6 +1,6 @@ --- id: 65f310fc37e701bfa451be47 -title: Task 39 +title: Tarefa 39 challengeType: 22 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3146b4f4fb2c1f95c7335.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3146b4f4fb2c1f95c7335.md index cce48966eda..e5212031677 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3146b4f4fb2c1f95c7335.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3146b4f4fb2c1f95c7335.md @@ -1,6 +1,6 @@ --- id: 65f3146b4f4fb2c1f95c7335 -title: Task 36 +title: Tarefa 36 challengeType: 19 dashedName: task-36 --- @@ -46,7 +46,7 @@ Sophie does not talk about her tech background, so she is not answering this que --- -None of the above +Nenhuma das anteriores ### --feedback-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f31898ad2ed9c3b1a4c9b3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f31898ad2ed9c3b1a4c9b3.md index e457195e533..e6c2989e8c8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f31898ad2ed9c3b1a4c9b3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f31898ad2ed9c3b1a4c9b3.md @@ -1,6 +1,6 @@ --- id: 65f31898ad2ed9c3b1a4c9b3 -title: Task 40 +title: Tarefa 40 challengeType: 22 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3212e767d81dbcfbeb0cc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3212e767d81dbcfbeb0cc.md index 68f8fa4ee06..f63bfc7271c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3212e767d81dbcfbeb0cc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3212e767d81dbcfbeb0cc.md @@ -1,6 +1,6 @@ --- id: 65f3212e767d81dbcfbeb0cc -title: Task 41 +title: Tarefa 41 challengeType: 22 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3234e85f828dd1f45d384.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3234e85f828dd1f45d384.md index 828d1c2b7e2..f55cf310160 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3234e85f828dd1f45d384.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3234e85f828dd1f45d384.md @@ -1,6 +1,6 @@ --- id: 65f3234e85f828dd1f45d384 -title: Task 42 +title: Tarefa 42 challengeType: 19 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3641948909aecf182befe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3641948909aecf182befe.md index 1688b2121c1..5193389a78d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3641948909aecf182befe.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3641948909aecf182befe.md @@ -1,6 +1,6 @@ --- id: 65f3641948909aecf182befe -title: Task 44 +title: Tarefa 44 challengeType: 22 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f365351cf89fedddcc281e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f365351cf89fedddcc281e.md index b2689aa8eb3..2b53ad1b990 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f365351cf89fedddcc281e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f365351cf89fedddcc281e.md @@ -1,6 +1,6 @@ --- id: 65f365351cf89fedddcc281e -title: Task 45 +title: Tarefa 45 challengeType: 22 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f365bc3c1491ee60db85a8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f365bc3c1491ee60db85a8.md index 0ea781efa29..a83787614f5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f365bc3c1491ee60db85a8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f365bc3c1491ee60db85a8.md @@ -1,6 +1,6 @@ --- id: 65f365bc3c1491ee60db85a8 -title: Task 46 +title: Tarefa 46 challengeType: 19 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f39df8d18f4814c75d3fba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f39df8d18f4814c75d3fba.md index e9fa983d92e..66fbbffefe8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f39df8d18f4814c75d3fba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f39df8d18f4814c75d3fba.md @@ -1,6 +1,6 @@ --- id: 65f39df8d18f4814c75d3fba -title: Task 54 +title: Tarefa 54 challengeType: 22 dashedName: task-54 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f39f5bc6d49d15d7ae3d73.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f39f5bc6d49d15d7ae3d73.md index a61eda75193..342550ff65e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f39f5bc6d49d15d7ae3d73.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f39f5bc6d49d15d7ae3d73.md @@ -1,6 +1,6 @@ --- id: 65f39f5bc6d49d15d7ae3d73 -title: Task 56 +title: Tarefa 56 challengeType: 22 dashedName: task-56 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a19e8b77c4170ed0704d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a19e8b77c4170ed0704d.md index 5fbeb0baad2..50466060563 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a19e8b77c4170ed0704d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a19e8b77c4170ed0704d.md @@ -1,6 +1,6 @@ --- id: 65f3a19e8b77c4170ed0704d -title: Task 57 +title: Tarefa 57 challengeType: 19 dashedName: task-57 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a5111de04c216a38d998.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a5111de04c216a38d998.md index cc704488236..427dc8f946f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a5111de04c216a38d998.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a5111de04c216a38d998.md @@ -1,6 +1,6 @@ --- id: 65f3a5111de04c216a38d998 -title: Task 61 +title: Tarefa 61 challengeType: 22 dashedName: task-61 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a5733a199c21ca589173.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a5733a199c21ca589173.md index 1254622ce8f..ccb711ec3a7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a5733a199c21ca589173.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a5733a199c21ca589173.md @@ -1,6 +1,6 @@ --- id: 65f3a5733a199c21ca589173 -title: Task 62 +title: Tarefa 62 challengeType: 19 dashedName: task-62 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a66869afaa22af33a9a3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a66869afaa22af33a9a3.md index fba2e6aa8f7..f4c602c0023 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a66869afaa22af33a9a3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a66869afaa22af33a9a3.md @@ -1,6 +1,6 @@ --- id: 65f3a66869afaa22af33a9a3 -title: Task 63 +title: Tarefa 63 challengeType: 22 dashedName: task-63 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a7087f990a233ebb16ba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a7087f990a233ebb16ba.md index 281db5a47ae..4477d042a4d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a7087f990a233ebb16ba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/65f3a7087f990a233ebb16ba.md @@ -1,6 +1,6 @@ --- id: 65f3a7087f990a233ebb16ba -title: Task 64 +title: Tarefa 64 challengeType: 22 dashedName: task-64 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f422e03c1be26ee37dbcf1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f422e03c1be26ee37dbcf1.md index eab9082f25f..ecf50045a7f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f422e03c1be26ee37dbcf1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f422e03c1be26ee37dbcf1.md @@ -10,6 +10,6 @@ dashedName: dialogue-1-asking-for-help-to-understand-code Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f424048ab85171c45e9a08.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f424048ab85171c45e9a08.md index 51623428698..9b763072e91 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f424048ab85171c45e9a08.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f424048ab85171c45e9a08.md @@ -1,6 +1,6 @@ --- id: 65f424048ab85171c45e9a08 -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f425b9d9686e76a354a7ee.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f425b9d9686e76a354a7ee.md index bcfa8cf1ab6..1c742b3a7ae 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f425b9d9686e76a354a7ee.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f425b9d9686e76a354a7ee.md @@ -1,6 +1,6 @@ --- id: 65f425b9d9686e76a354a7ee -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4264c34d9b678ecd79ad3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4264c34d9b678ecd79ad3.md index 6eea699a800..733da90c8cb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4264c34d9b678ecd79ad3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4264c34d9b678ecd79ad3.md @@ -1,6 +1,6 @@ --- id: 65f4264c34d9b678ecd79ad3 -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4271a0a61e57af14a9b35.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4271a0a61e57af14a9b35.md index aed88fbc2ae..95eb06fe152 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4271a0a61e57af14a9b35.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4271a0a61e57af14a9b35.md @@ -1,6 +1,6 @@ --- id: 65f4271a0a61e57af14a9b35 -title: Task 4 +title: Tarefa 4 challengeType: 19 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f42789b0fe157c08cf04eb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f42789b0fe157c08cf04eb.md index 05bf32bf776..25e477a74a5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f42789b0fe157c08cf04eb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f42789b0fe157c08cf04eb.md @@ -1,6 +1,6 @@ --- id: 65f42789b0fe157c08cf04eb -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f434b6c6a3ba9743d08e22.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f434b6c6a3ba9743d08e22.md index a9cd868b29a..f646a68318e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f434b6c6a3ba9743d08e22.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f434b6c6a3ba9743d08e22.md @@ -1,6 +1,6 @@ --- id: 65f434b6c6a3ba9743d08e22 -title: Task 6 +title: Tarefa 6 challengeType: 19 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f435edbd8f519aba51cc93.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f435edbd8f519aba51cc93.md index a73b44f4af4..b784c11b4cd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f435edbd8f519aba51cc93.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f435edbd8f519aba51cc93.md @@ -1,6 +1,6 @@ --- id: 65f435edbd8f519aba51cc93 -title: Task 7 +title: Tarefa 7 challengeType: 22 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f437964aed009f178dd167.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f437964aed009f178dd167.md index f1df7ed4b03..b63f18f061d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f437964aed009f178dd167.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f437964aed009f178dd167.md @@ -1,6 +1,6 @@ --- id: 65f437964aed009f178dd167 -title: Task 8 +title: Tarefa 8 challengeType: 22 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4386ef80894a17d6b1f3d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4386ef80894a17d6b1f3d.md index 5b5be2d3feb..306df4ddbec 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4386ef80894a17d6b1f3d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f4386ef80894a17d6b1f3d.md @@ -1,6 +1,6 @@ --- id: 65f4386ef80894a17d6b1f3d -title: Task 9 +title: Tarefa 9 challengeType: 22 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f439533bb1c4a3ab360b62.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f439533bb1c4a3ab360b62.md index 1f51801dceb..b1c91f1a797 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f439533bb1c4a3ab360b62.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f439533bb1c4a3ab360b62.md @@ -1,6 +1,6 @@ --- id: 65f439533bb1c4a3ab360b62 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f439b8a46608a46ba94c73.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f439b8a46608a46ba94c73.md index 3193a10cb64..1ec9d05e3d7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f439b8a46608a46ba94c73.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f439b8a46608a46ba94c73.md @@ -1,6 +1,6 @@ --- id: 65f439b8a46608a46ba94c73 -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43a3a8b2c8ba627c31e46.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43a3a8b2c8ba627c31e46.md index 4a8d6994455..96ddcbbd3aa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43a3a8b2c8ba627c31e46.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43a3a8b2c8ba627c31e46.md @@ -1,6 +1,6 @@ --- id: 65f43a3a8b2c8ba627c31e46 -title: Task 12 +title: Tarefa 12 challengeType: 22 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43aa270f998a70375bb23.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43aa270f998a70375bb23.md index 38d1a5f8dee..1623c690a1c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43aa270f998a70375bb23.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43aa270f998a70375bb23.md @@ -1,6 +1,6 @@ --- id: 65f43aa270f998a70375bb23 -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43b8a961e01a96a940470.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43b8a961e01a96a940470.md index b9030426fbf..d50a9f23c90 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43b8a961e01a96a940470.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43b8a961e01a96a940470.md @@ -1,6 +1,6 @@ --- id: 65f43b8a961e01a96a940470 -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43c96b08a08ac434de6cb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43c96b08a08ac434de6cb.md index 302e2f09ea8..9841175e566 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43c96b08a08ac434de6cb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f43c96b08a08ac434de6cb.md @@ -1,6 +1,6 @@ --- id: 65f43c96b08a08ac434de6cb -title: Task 15 +title: Tarefa 15 challengeType: 22 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f50a13853f93ef6c7337c1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f50a13853f93ef6c7337c1.md index b887ad10cb6..660eff49626 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f50a13853f93ef6c7337c1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f50a13853f93ef6c7337c1.md @@ -10,6 +10,6 @@ dashedName: dialogue-2-asking-for-help-on-a-bug Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f510b35d792af24e985351.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f510b35d792af24e985351.md index 21e451509f2..31dcf8682d5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f510b35d792af24e985351.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f510b35d792af24e985351.md @@ -1,6 +1,6 @@ --- id: 65f510b35d792af24e985351 -title: Task 16 +title: Tarefa 16 challengeType: 22 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f511638aa1de0b9d53963e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f511638aa1de0b9d53963e.md index 4845d18fab1..7f85c33754f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f511638aa1de0b9d53963e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f511638aa1de0b9d53963e.md @@ -1,6 +1,6 @@ --- id: 65f511638aa1de0b9d53963e -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52ee449926c59b5c3a407.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52ee449926c59b5c3a407.md index 6d5a654a9bd..23599678716 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52ee449926c59b5c3a407.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52ee449926c59b5c3a407.md @@ -1,6 +1,6 @@ --- id: 65f52ee449926c59b5c3a407 -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52f215010605aa4da8804.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52f215010605aa4da8804.md index 2fbbef9b408..96519708d01 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52f215010605aa4da8804.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52f215010605aa4da8804.md @@ -1,6 +1,6 @@ --- id: 65f52f215010605aa4da8804 -title: Task 19 +title: Tarefa 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52f761f23715bce60f9ce.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52f761f23715bce60f9ce.md index e1953f14ff7..9feaa3e29f7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52f761f23715bce60f9ce.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52f761f23715bce60f9ce.md @@ -1,6 +1,6 @@ --- id: 65f52f761f23715bce60f9ce -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52fb434a8875cb666ede5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52fb434a8875cb666ede5.md index b89bebcc627..85c01ae40c1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52fb434a8875cb666ede5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f52fb434a8875cb666ede5.md @@ -1,6 +1,6 @@ --- id: 65f52fb434a8875cb666ede5 -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- @@ -14,7 +14,7 @@ Sarah: Where does it seem to be happening? `Seem to be` is used when you are not sure about something and you want to guess or suggest a possibility. For example, if you say `It seems to be working`, you are guessing that something is working but you are not 100% sure. -Examples: +Exemplos: Affirmative: `It seems to be working fine.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f53033b856ff5e687644e4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f53033b856ff5e687644e4.md index b1484445c60..9b8516221bc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f53033b856ff5e687644e4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f53033b856ff5e687644e4.md @@ -1,6 +1,6 @@ --- id: 65f53033b856ff5e687644e4 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f530793181a05f4e44a36a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f530793181a05f4e44a36a.md index ce22eae5dfb..a8262123a17 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f530793181a05f4e44a36a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f530793181a05f4e44a36a.md @@ -1,6 +1,6 @@ --- id: 65f530793181a05f4e44a36a -title: Task 23 +title: Tarefa 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f569d173ab3d5100c42fd0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f569d173ab3d5100c42fd0.md index 6f00cbe2fe7..78a0f8977b2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f569d173ab3d5100c42fd0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f569d173ab3d5100c42fd0.md @@ -1,6 +1,6 @@ --- id: 65f569d173ab3d5100c42fd0 -title: Task 24 +title: Tarefa 24 challengeType: 22 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56b281bb51c5493d3e598.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56b281bb51c5493d3e598.md index c1f2eb2b7e3..78c5ac812de 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56b281bb51c5493d3e598.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56b281bb51c5493d3e598.md @@ -1,6 +1,6 @@ --- id: 65f56b281bb51c5493d3e598 -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56b6445b35b558688bc4d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56b6445b35b558688bc4d.md index fb382e38802..099ed759714 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56b6445b35b558688bc4d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56b6445b35b558688bc4d.md @@ -1,6 +1,6 @@ --- id: 65f56b6445b35b558688bc4d -title: Task 26 +title: Tarefa 26 challengeType: 22 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56e358123475af6d0f245.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56e358123475af6d0f245.md index df46a63d33b..8c28c71dd4f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56e358123475af6d0f245.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f56e358123475af6d0f245.md @@ -1,6 +1,6 @@ --- id: 65f56e358123475af6d0f245 -title: Task 27 +title: Tarefa 27 challengeType: 19 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5703b434254615ec3b886.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5703b434254615ec3b886.md index e3d1e5ec2bb..d3ed9f8b31c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5703b434254615ec3b886.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5703b434254615ec3b886.md @@ -1,6 +1,6 @@ --- id: 65f5703b434254615ec3b886 -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f587dd775b4e74643cf3db.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f587dd775b4e74643cf3db.md index bfd310e1a30..d9aff02aa08 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f587dd775b4e74643cf3db.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f587dd775b4e74643cf3db.md @@ -10,6 +10,6 @@ dashedName: dialogue-3-asking-for-peer-reviewing Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5884cd3c21a9bd49f4b00.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5884cd3c21a9bd49f4b00.md index 5512a1f3b1b..51a09e509ed 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5884cd3c21a9bd49f4b00.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5884cd3c21a9bd49f4b00.md @@ -1,6 +1,6 @@ --- id: 65f5884cd3c21a9bd49f4b00 -title: Task 29 +title: Tarefa 29 challengeType: 22 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58a1bc78dd4a0a22a8168.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58a1bc78dd4a0a22a8168.md index 031cf1dd828..982a3ae5068 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58a1bc78dd4a0a22a8168.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58a1bc78dd4a0a22a8168.md @@ -1,6 +1,6 @@ --- id: 65f58a1bc78dd4a0a22a8168 -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58b427db077a36de24777.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58b427db077a36de24777.md index 824f961f367..b264481ff23 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58b427db077a36de24777.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58b427db077a36de24777.md @@ -1,6 +1,6 @@ --- id: 65f58b427db077a36de24777 -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58d630872fea94e0f91f5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58d630872fea94e0f91f5.md index 14f3b518eeb..299dc58111f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58d630872fea94e0f91f5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f58d630872fea94e0f91f5.md @@ -1,6 +1,6 @@ --- id: 65f58d630872fea94e0f91f5 -title: Task 32 +title: Tarefa 32 challengeType: 19 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f592180269c1b38c771164.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f592180269c1b38c771164.md index ef2db9833e2..2d843c08736 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f592180269c1b38c771164.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f592180269c1b38c771164.md @@ -1,6 +1,6 @@ --- id: 65f592180269c1b38c771164 -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5928f3ee01db4e8b9d7fe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5928f3ee01db4e8b9d7fe.md index 2e31d1f260e..9959dcebcf8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5928f3ee01db4e8b9d7fe.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5928f3ee01db4e8b9d7fe.md @@ -1,6 +1,6 @@ --- id: 65f5928f3ee01db4e8b9d7fe -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5936de4e017b74ea663db.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5936de4e017b74ea663db.md index 57ba7a9fdf3..0c4c37a0171 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5936de4e017b74ea663db.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f5936de4e017b74ea663db.md @@ -1,6 +1,6 @@ --- id: 65f5936de4e017b74ea663db -title: Task 35 +title: Tarefa 35 challengeType: 22 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f59409f39a43b8d90b53f7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f59409f39a43b8d90b53f7.md index 1d1a0eb2c9b..420dbf2858e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f59409f39a43b8d90b53f7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f59409f39a43b8d90b53f7.md @@ -1,6 +1,6 @@ --- id: 65f59409f39a43b8d90b53f7 -title: Task 36 +title: Tarefa 36 challengeType: 19 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f594d096c1aebb60e5194d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f594d096c1aebb60e5194d.md index 89f8189fd11..ac59685e1eb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f594d096c1aebb60e5194d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f594d096c1aebb60e5194d.md @@ -1,6 +1,6 @@ --- id: 65f594d096c1aebb60e5194d -title: Task 37 +title: Tarefa 37 challengeType: 22 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f598d3a104b7c50aea53ab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f598d3a104b7c50aea53ab.md index d1b5a78a7f2..3426ca32d7c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f598d3a104b7c50aea53ab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f598d3a104b7c50aea53ab.md @@ -1,6 +1,6 @@ --- id: 65f598d3a104b7c50aea53ab -title: Task 38 +title: Tarefa 38 challengeType: 22 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f5d9324c65ef3adab297.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f5d9324c65ef3adab297.md index b1b77de809e..6a310c0037a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f5d9324c65ef3adab297.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f5d9324c65ef3adab297.md @@ -1,6 +1,6 @@ --- id: 65f6f5d9324c65ef3adab297 -title: Task 39 +title: Tarefa 39 challengeType: 19 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f6f53aaa73f21560a9cc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f6f53aaa73f21560a9cc.md index 761a28d0308..c1f86df1285 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f6f53aaa73f21560a9cc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f6f53aaa73f21560a9cc.md @@ -1,6 +1,6 @@ --- id: 65f6f6f53aaa73f21560a9cc -title: Task 40 +title: Tarefa 40 challengeType: 19 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f7d103c247f4d7e10b34.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f7d103c247f4d7e10b34.md index 5c15f55bc0e..7e35808d8fb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f7d103c247f4d7e10b34.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f7d103c247f4d7e10b34.md @@ -1,6 +1,6 @@ --- id: 65f6f7d103c247f4d7e10b34 -title: Task 41 +title: Tarefa 41 challengeType: 22 dashedName: task-41 --- @@ -14,7 +14,7 @@ Brian: Understood. We can investigate this together, and by the end of it, we sh The word `clear` means easy to understand or see. When you want to compare something and show it is more `clear`, you add `er` at the end to make `clearer`. -For example: +Por exemplo: - This explanation is `clear`. - This explanation is `clearer` than the other one. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f9e9cfbda7f9c04e8af7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f9e9cfbda7f9c04e8af7.md index 10acd94b017..fb93799eace 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f9e9cfbda7f9c04e8af7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6f9e9cfbda7f9c04e8af7.md @@ -1,6 +1,6 @@ --- id: 65f6f9e9cfbda7f9c04e8af7 -title: Task 42 +title: Tarefa 42 challengeType: 19 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6fb76ea5932fe4ba266c6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6fb76ea5932fe4ba266c6.md index 7b622c45892..87321bbea5c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6fb76ea5932fe4ba266c6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6fb76ea5932fe4ba266c6.md @@ -1,6 +1,6 @@ --- id: 65f6fb76ea5932fe4ba266c6 -title: Task 43 +title: Tarefa 43 challengeType: 19 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6fc00be7facffe0898c6d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6fc00be7facffe0898c6d.md index 77ad0eebf03..6fa17fd57df 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6fc00be7facffe0898c6d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/65f6fc00be7facffe0898c6d.md @@ -1,6 +1,6 @@ --- id: 65f6fc00be7facffe0898c6d -title: Task 44 +title: Tarefa 44 challengeType: 22 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index 838a5bbe3ab..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/655c114a439cc488b79fe60f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/655c114a439cc488b79fe60f.md index 021460419a6..0a69783f0d3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/655c114a439cc488b79fe60f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/655c114a439cc488b79fe60f.md @@ -7,15 +7,15 @@ dashedName: dialogue-1-describing-a-workmate # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620024f9abdcba3f531a4ed.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620024f9abdcba3f531a4ed.md index 20460eb3e20..48838ba65d9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620024f9abdcba3f531a4ed.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620024f9abdcba3f531a4ed.md @@ -1,6 +1,6 @@ --- id: 6620024f9abdcba3f531a4ed -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66200544eb8080a7cffe98cd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66200544eb8080a7cffe98cd.md index 878989eda86..6e7d7b2f48e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66200544eb8080a7cffe98cd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66200544eb8080a7cffe98cd.md @@ -1,6 +1,6 @@ --- id: 66200544eb8080a7cffe98cd -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/662006b0cb4ee9a8a0e3b9bc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/662006b0cb4ee9a8a0e3b9bc.md index 6740c6c1eb8..bfdedf17819 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/662006b0cb4ee9a8a0e3b9bc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/662006b0cb4ee9a8a0e3b9bc.md @@ -1,6 +1,6 @@ --- id: 662006b0cb4ee9a8a0e3b9bc -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66200a69671a05aa6bcd669e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66200a69671a05aa6bcd669e.md index f118451d08a..ff025e3fc48 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66200a69671a05aa6bcd669e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66200a69671a05aa6bcd669e.md @@ -1,6 +1,6 @@ --- id: 66200a69671a05aa6bcd669e -title: Task 4 +title: Tarefa 4 challengeType: 22 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620102deeab45aeeffa84ac.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620102deeab45aeeffa84ac.md index 7b1a504bf8c..8870da51ad1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620102deeab45aeeffa84ac.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620102deeab45aeeffa84ac.md @@ -1,6 +1,6 @@ --- id: 6620102deeab45aeeffa84ac -title: Task 5 +title: Tarefa 5 challengeType: 22 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/662016beb9bb69b2bd4f5d2a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/662016beb9bb69b2bd4f5d2a.md index ad69de118b8..6f48bca4458 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/662016beb9bb69b2bd4f5d2a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/662016beb9bb69b2bd4f5d2a.md @@ -1,6 +1,6 @@ --- id: 662016beb9bb69b2bd4f5d2a -title: Task 6 +title: Tarefa 6 challengeType: 19 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620187263f472b3b2d0c638.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620187263f472b3b2d0c638.md index 1e12ab64957..ed7d5fdaa1b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620187263f472b3b2d0c638.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6620187263f472b3b2d0c638.md @@ -1,6 +1,6 @@ --- id: 6620187263f472b3b2d0c638 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6626dd1f251b2a43ad18b3bb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6626dd1f251b2a43ad18b3bb.md index d571660685a..c7835f05b34 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6626dd1f251b2a43ad18b3bb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6626dd1f251b2a43ad18b3bb.md @@ -1,6 +1,6 @@ --- id: 6626dd1f251b2a43ad18b3bb -title: Task 8 +title: Tarefa 8 challengeType: 22 dashedName: task-8 --- @@ -13,7 +13,7 @@ In English, when you describe another person to someone else, it is also common # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6633e43c32afebfaef45da26.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6633e43c32afebfaef45da26.md index c357ea4a0e3..e9113033116 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6633e43c32afebfaef45da26.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6633e43c32afebfaef45da26.md @@ -1,6 +1,6 @@ --- id: 6633e43c32afebfaef45da26 -title: Task 9 +title: Tarefa 9 challengeType: 22 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636759d3068bf2dd73272f2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636759d3068bf2dd73272f2.md index bdf9ff53023..d7ec1360f13 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636759d3068bf2dd73272f2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636759d3068bf2dd73272f2.md @@ -1,6 +1,6 @@ --- id: 6636759d3068bf2dd73272f2 -title: Task 10 +title: Tarefa 10 challengeType: 22 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663677ae4cd78f2e87d34cac.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663677ae4cd78f2e87d34cac.md index e29ab2d7efb..c6629a68ff9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663677ae4cd78f2e87d34cac.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663677ae4cd78f2e87d34cac.md @@ -1,6 +1,6 @@ --- id: 663677ae4cd78f2e87d34cac -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66367be03c46fd32ebb2d7a5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66367be03c46fd32ebb2d7a5.md index f0125a9e6f3..3f79cdbd0cc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66367be03c46fd32ebb2d7a5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66367be03c46fd32ebb2d7a5.md @@ -1,6 +1,6 @@ --- id: 66367be03c46fd32ebb2d7a5 -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66367e01e3c7bb33ca28dcff.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66367e01e3c7bb33ca28dcff.md index de5239c5fd9..f29f9c556ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66367e01e3c7bb33ca28dcff.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66367e01e3c7bb33ca28dcff.md @@ -1,6 +1,6 @@ --- id: 66367e01e3c7bb33ca28dcff -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663681f2b524fe34dca85721.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663681f2b524fe34dca85721.md index d1dafd7b878..218ebcfaad4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663681f2b524fe34dca85721.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663681f2b524fe34dca85721.md @@ -1,6 +1,6 @@ --- id: 663681f2b524fe34dca85721 -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663683bee8bb3c35a05ba69a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663683bee8bb3c35a05ba69a.md index 0a5dee0ff86..0dab0a2f145 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663683bee8bb3c35a05ba69a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663683bee8bb3c35a05ba69a.md @@ -1,6 +1,6 @@ --- id: 663683bee8bb3c35a05ba69a -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663685882305b736cb133f2b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663685882305b736cb133f2b.md index df734e29dfc..c6d2275d0a4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663685882305b736cb133f2b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663685882305b736cb133f2b.md @@ -1,6 +1,6 @@ --- id: 663685882305b736cb133f2b -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663688f21e5cce3a30161e12.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663688f21e5cce3a30161e12.md index 90e565ed552..c4e86f2729b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663688f21e5cce3a30161e12.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663688f21e5cce3a30161e12.md @@ -1,6 +1,6 @@ --- id: 663688f21e5cce3a30161e12 -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66368c556493fd3fd21f446d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66368c556493fd3fd21f446d.md index af4018c4272..bcb2db12173 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66368c556493fd3fd21f446d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66368c556493fd3fd21f446d.md @@ -9,9 +9,9 @@ dashedName: dialogue-2-looking-for-tom Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video. +Assista ao vídeo. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636cb4a5a281173c4ac8c08.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636cb4a5a281173c4ac8c08.md index b481a18ed9b..e4bbc7b5f3a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636cb4a5a281173c4ac8c08.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636cb4a5a281173c4ac8c08.md @@ -1,6 +1,6 @@ --- id: 6636cb4a5a281173c4ac8c08 -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636ce8dd8527976bcc512a5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636ce8dd8527976bcc512a5.md index ebc9d17ae2a..793af689628 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636ce8dd8527976bcc512a5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636ce8dd8527976bcc512a5.md @@ -1,6 +1,6 @@ --- id: 6636ce8dd8527976bcc512a5 -title: Task 19 +title: Tarefa 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d1246df2f077a703512c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d1246df2f077a703512c.md index dede3862f66..1565a1a6fbf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d1246df2f077a703512c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d1246df2f077a703512c.md @@ -1,6 +1,6 @@ --- id: 6636d1246df2f077a703512c -title: Task 20 +title: Tarefa 20 challengeType: 22 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d20a1479ea7853331bc6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d20a1479ea7853331bc6.md index f449294fd2a..0955c6af320 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d20a1479ea7853331bc6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d20a1479ea7853331bc6.md @@ -1,6 +1,6 @@ --- id: 6636d20a1479ea7853331bc6 -title: Task 21 +title: Tarefa 21 challengeType: 19 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d3e08afa737905037258.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d3e08afa737905037258.md index 48e1d798c2d..66334009ab2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d3e08afa737905037258.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636d3e08afa737905037258.md @@ -1,6 +1,6 @@ --- id: 6636d3e08afa737905037258 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636e06ef062127d6e45d136.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636e06ef062127d6e45d136.md index aedc81ef0ca..36c632c5e5c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636e06ef062127d6e45d136.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6636e06ef062127d6e45d136.md @@ -1,6 +1,6 @@ --- id: 6636e06ef062127d6e45d136 -title: Task 23 +title: Tarefa 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a3f4bd1ed1ba8f4552212.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a3f4bd1ed1ba8f4552212.md index 6be91be029b..a2028497206 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a3f4bd1ed1ba8f4552212.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a3f4bd1ed1ba8f4552212.md @@ -1,6 +1,6 @@ --- id: 663a3f4bd1ed1ba8f4552212 -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4113812035a9e55aaf29.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4113812035a9e55aaf29.md index e5ad7d779d3..0037f1cfdca 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4113812035a9e55aaf29.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4113812035a9e55aaf29.md @@ -1,6 +1,6 @@ --- id: 663a4113812035a9e55aaf29 -title: Task 25 +title: Tarefa 25 challengeType: 22 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a47b234aefeabacb3cf75.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a47b234aefeabacb3cf75.md index 55e52941289..63e5067ce56 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a47b234aefeabacb3cf75.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a47b234aefeabacb3cf75.md @@ -1,6 +1,6 @@ --- id: 663a47b234aefeabacb3cf75 -title: Task 26 +title: Tarefa 26 challengeType: 22 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4d6ec33accaf2ec7be49.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4d6ec33accaf2ec7be49.md index f5bca23b9b6..f4028da0edf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4d6ec33accaf2ec7be49.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4d6ec33accaf2ec7be49.md @@ -1,6 +1,6 @@ --- id: 663a4d6ec33accaf2ec7be49 -title: Task 27 +title: Tarefa 27 challengeType: 22 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4e8d22e594affc57ed82.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4e8d22e594affc57ed82.md index cbefbcb8fe3..523d0e7dd95 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4e8d22e594affc57ed82.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4e8d22e594affc57ed82.md @@ -1,6 +1,6 @@ --- id: 663a4e8d22e594affc57ed82 -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4fa7a15067b0c128cb01.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4fa7a15067b0c128cb01.md index 33f477f39c6..d4ec3291079 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4fa7a15067b0c128cb01.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a4fa7a15067b0c128cb01.md @@ -1,6 +1,6 @@ --- id: 663a4fa7a15067b0c128cb01 -title: Task 29 +title: Tarefa 29 challengeType: 22 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a5b36b3cfadb39db070a2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a5b36b3cfadb39db070a2.md index 265eaa0ef05..8202442de1e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a5b36b3cfadb39db070a2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a5b36b3cfadb39db070a2.md @@ -1,6 +1,6 @@ --- id: 663a5b36b3cfadb39db070a2 -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a5bde4b0ae5b4421b4964.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a5bde4b0ae5b4421b4964.md index 12a9f60184b..79fb0ac0916 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a5bde4b0ae5b4421b4964.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a5bde4b0ae5b4421b4964.md @@ -1,6 +1,6 @@ --- id: 663a5bde4b0ae5b4421b4964 -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a62b17fc3bbb5f60b3d32.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a62b17fc3bbb5f60b3d32.md index d0c5fd38439..878dbeb1f5d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a62b17fc3bbb5f60b3d32.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a62b17fc3bbb5f60b3d32.md @@ -1,6 +1,6 @@ --- id: 663a62b17fc3bbb5f60b3d32 -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a6406c05b04b6affb427a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a6406c05b04b6affb427a.md index e687ad06594..4e068d40957 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a6406c05b04b6affb427a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663a6406c05b04b6affb427a.md @@ -1,6 +1,6 @@ --- id: 663a6406c05b04b6affb427a -title: Task 33 +title: Tarefa 33 challengeType: 22 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b704b213885462be6020e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b704b213885462be6020e.md index 8e3ddbbe2c2..c458abeeff0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b704b213885462be6020e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b704b213885462be6020e.md @@ -1,6 +1,6 @@ --- id: 663b704b213885462be6020e -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b73051a79cb48e8575c9c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b73051a79cb48e8575c9c.md index 1d14fe4ffd6..c18d2c6c5b3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b73051a79cb48e8575c9c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b73051a79cb48e8575c9c.md @@ -1,6 +1,6 @@ --- id: 663b73051a79cb48e8575c9c -title: Task 35 +title: Tarefa 35 challengeType: 19 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b9a1f2d5bed4fa98759bb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b9a1f2d5bed4fa98759bb.md index 4be62378e46..33daec0d8b2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b9a1f2d5bed4fa98759bb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663b9a1f2d5bed4fa98759bb.md @@ -9,9 +9,9 @@ dashedName: dialogue-3-a-guessing-game Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video. +Assista ao vídeo. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bce49cc4c88ac83a3d618.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bce49cc4c88ac83a3d618.md index 66adbd17c49..219fc9ecabb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bce49cc4c88ac83a3d618.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bce49cc4c88ac83a3d618.md @@ -1,6 +1,6 @@ --- id: 663bce49cc4c88ac83a3d618 -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd0951a16faada79364bd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd0951a16faada79364bd.md index e98f51d52b7..51307acafe2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd0951a16faada79364bd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd0951a16faada79364bd.md @@ -1,6 +1,6 @@ --- id: 663bd0951a16faada79364bd -title: Task 37 +title: Tarefa 37 challengeType: 19 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd4807a9e2faee277fe71.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd4807a9e2faee277fe71.md index 6886de21bcd..360475b07a6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd4807a9e2faee277fe71.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd4807a9e2faee277fe71.md @@ -1,6 +1,6 @@ --- id: 663bd4807a9e2faee277fe71 -title: Task 38 +title: Tarefa 38 challengeType: 19 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd7b5e73f82b044a7ebab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd7b5e73f82b044a7ebab.md index 8c1f44b4bda..d049811075d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd7b5e73f82b044a7ebab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663bd7b5e73f82b044a7ebab.md @@ -1,6 +1,6 @@ --- id: 663bd7b5e73f82b044a7ebab -title: Task 39 +title: Tarefa 39 challengeType: 22 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c1e666a0636bad7df73fc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c1e666a0636bad7df73fc.md index cb5a51aeeb5..bde286e17a3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c1e666a0636bad7df73fc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c1e666a0636bad7df73fc.md @@ -1,6 +1,6 @@ --- id: 663c1e666a0636bad7df73fc -title: Task 40 +title: Tarefa 40 challengeType: 22 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c215247722dbc339af6a3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c215247722dbc339af6a3.md index 2fdf36d2132..e6a7193642d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c215247722dbc339af6a3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c215247722dbc339af6a3.md @@ -1,6 +1,6 @@ --- id: 663c215247722dbc339af6a3 -title: Task 41 +title: Tarefa 41 challengeType: 22 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c28fb560322fb7f096297.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c28fb560322fb7f096297.md index d1229ab84ea..a8318933c6a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c28fb560322fb7f096297.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c28fb560322fb7f096297.md @@ -1,6 +1,6 @@ --- id: 663c28fb560322fb7f096297 -title: Task 42 +title: Tarefa 42 challengeType: 22 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c88890037230b817b9fef.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c88890037230b817b9fef.md index 9f87db865a0..11cdc741a1d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c88890037230b817b9fef.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c88890037230b817b9fef.md @@ -1,6 +1,6 @@ --- id: 663c88890037230b817b9fef -title: Task 43 +title: Tarefa 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c89e095962e0cc15c6553.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c89e095962e0cc15c6553.md index be7b4d4315c..bd5d5f1a95b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c89e095962e0cc15c6553.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c89e095962e0cc15c6553.md @@ -1,6 +1,6 @@ --- id: 663c89e095962e0cc15c6553 -title: Task 44 +title: Tarefa 44 challengeType: 19 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c8dd09e3f71105de1ca9c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c8dd09e3f71105de1ca9c.md index 7739d2f1bf9..0517e67c16e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c8dd09e3f71105de1ca9c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c8dd09e3f71105de1ca9c.md @@ -1,6 +1,6 @@ --- id: 663c8dd09e3f71105de1ca9c -title: Task 45 +title: Tarefa 45 challengeType: 22 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c8fc74ba87a11b0c1f642.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c8fc74ba87a11b0c1f642.md index 34e7e37b5ab..ad8bef6ba1c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c8fc74ba87a11b0c1f642.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c8fc74ba87a11b0c1f642.md @@ -1,6 +1,6 @@ --- id: 663c8fc74ba87a11b0c1f642 -title: Task 46 +title: Tarefa 46 challengeType: 22 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c90e831be4c127bb11d35.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c90e831be4c127bb11d35.md index 1eb798f155a..39b5b713290 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c90e831be4c127bb11d35.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c90e831be4c127bb11d35.md @@ -1,6 +1,6 @@ --- id: 663c90e831be4c127bb11d35 -title: Task 47 +title: Tarefa 47 challengeType: 22 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c927eace0de1347294f6e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c927eace0de1347294f6e.md index 2fa23da7cbf..b3e213c2a9f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c927eace0de1347294f6e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c927eace0de1347294f6e.md @@ -1,6 +1,6 @@ --- id: 663c927eace0de1347294f6e -title: Task 48 +title: Tarefa 48 challengeType: 19 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c9a6ddd82d94fbe28bb08.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c9a6ddd82d94fbe28bb08.md index 2561c08f896..450b3a66868 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c9a6ddd82d94fbe28bb08.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663c9a6ddd82d94fbe28bb08.md @@ -9,9 +9,9 @@ dashedName: dialogue-4-checking-the-project-details Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video. +Assista ao vídeo. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663ccbc479ca2261259f46bc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663ccbc479ca2261259f46bc.md index 164c84c2dc8..d5c31f5a599 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663ccbc479ca2261259f46bc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663ccbc479ca2261259f46bc.md @@ -1,6 +1,6 @@ --- id: 663ccbc479ca2261259f46bc -title: Task 49 +title: Tarefa 49 challengeType: 22 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cccdee312b962235e81d1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cccdee312b962235e81d1.md index 54bc5809f56..a4b79250935 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cccdee312b962235e81d1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cccdee312b962235e81d1.md @@ -1,6 +1,6 @@ --- id: 663cccdee312b962235e81d1 -title: Task 50 +title: Tarefa 50 challengeType: 22 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cce39c325416308bf1cc6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cce39c325416308bf1cc6.md index f5211881dc5..08cc065ecc9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cce39c325416308bf1cc6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cce39c325416308bf1cc6.md @@ -1,6 +1,6 @@ --- id: 663cce39c325416308bf1cc6 -title: Task 51 +title: Tarefa 51 challengeType: 19 dashedName: task-51 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cd87f741bbf69f5f3b070.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cd87f741bbf69f5f3b070.md index 726cd880166..c1edc07c1b7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cd87f741bbf69f5f3b070.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cd87f741bbf69f5f3b070.md @@ -1,6 +1,6 @@ --- id: 663cd87f741bbf69f5f3b070 -title: Task 52 +title: Tarefa 52 challengeType: 19 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cdd506fb3896b73b1cd13.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cdd506fb3896b73b1cd13.md index f3257649c00..5c39b9c6114 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cdd506fb3896b73b1cd13.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cdd506fb3896b73b1cd13.md @@ -1,6 +1,6 @@ --- id: 663cdd506fb3896b73b1cd13 -title: Task 53 +title: Tarefa 53 challengeType: 19 dashedName: task-53 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cffeb24e5c975dfa41e46.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cffeb24e5c975dfa41e46.md index f884e5c20d3..3d71807abce 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cffeb24e5c975dfa41e46.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663cffeb24e5c975dfa41e46.md @@ -1,6 +1,6 @@ --- id: 663cffeb24e5c975dfa41e46 -title: Task 54 +title: Tarefa 54 challengeType: 22 dashedName: task-54 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d02da85fab2771f93d4f2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d02da85fab2771f93d4f2.md index 9731e201dc3..8d928367177 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d02da85fab2771f93d4f2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d02da85fab2771f93d4f2.md @@ -1,6 +1,6 @@ --- id: 663d02da85fab2771f93d4f2 -title: Task 55 +title: Tarefa 55 challengeType: 19 dashedName: task-55 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d0c3d407cb479e138ba33.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d0c3d407cb479e138ba33.md index da8b074b4f5..5ef727217a5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d0c3d407cb479e138ba33.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d0c3d407cb479e138ba33.md @@ -1,6 +1,6 @@ --- id: 663d0c3d407cb479e138ba33 -title: Task 56 +title: Tarefa 56 challengeType: 22 dashedName: task-56 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d115d93f1107c06ffa065.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d115d93f1107c06ffa065.md index 3c8199ff1f8..74c90c5a2c9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d115d93f1107c06ffa065.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d115d93f1107c06ffa065.md @@ -1,6 +1,6 @@ --- id: 663d115d93f1107c06ffa065 -title: Task 57 +title: Tarefa 57 challengeType: 22 dashedName: task-57 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d136b07dbdd7cebf17907.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d136b07dbdd7cebf17907.md index 90c412af480..1732022ab08 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d136b07dbdd7cebf17907.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d136b07dbdd7cebf17907.md @@ -1,6 +1,6 @@ --- id: 663d136b07dbdd7cebf17907 -title: Task 58 +title: Tarefa 58 challengeType: 22 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6a2db05996853d03529c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6a2db05996853d03529c.md index db1f260523d..cc6001a48b2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6a2db05996853d03529c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6a2db05996853d03529c.md @@ -1,6 +1,6 @@ --- id: 663d6a2db05996853d03529c -title: Task 59 +title: Tarefa 59 challengeType: 19 dashedName: task-59 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6d929fe885871065c758.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6d929fe885871065c758.md index c68d6ceb8f1..89381e91117 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6d929fe885871065c758.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6d929fe885871065c758.md @@ -1,6 +1,6 @@ --- id: 663d6d929fe885871065c758 -title: Task 60 +title: Tarefa 60 challengeType: 22 dashedName: task-60 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6ec0d26560880593fbc2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6ec0d26560880593fbc2.md index f96d84dc292..e788b0b3d30 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6ec0d26560880593fbc2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d6ec0d26560880593fbc2.md @@ -1,6 +1,6 @@ --- id: 663d6ec0d26560880593fbc2 -title: Task 61 +title: Tarefa 61 challengeType: 19 dashedName: task-61 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d7154bd39b3894c29ddc0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d7154bd39b3894c29ddc0.md index e145718d1ba..ecbedaf2607 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d7154bd39b3894c29ddc0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d7154bd39b3894c29ddc0.md @@ -1,6 +1,6 @@ --- id: 663d7154bd39b3894c29ddc0 -title: Task 62 +title: Tarefa 62 challengeType: 19 dashedName: task-62 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d74ac95bdc08a3cfce6f5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d74ac95bdc08a3cfce6f5.md index 19b1ea9b6e5..d78a5d9c762 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d74ac95bdc08a3cfce6f5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d74ac95bdc08a3cfce6f5.md @@ -1,6 +1,6 @@ --- id: 663d74ac95bdc08a3cfce6f5 -title: Task 63 +title: Tarefa 63 challengeType: 22 dashedName: task-63 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d762ab138308b52969b04.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d762ab138308b52969b04.md index 7b8b13a9bcd..cbcf39ec411 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d762ab138308b52969b04.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d762ab138308b52969b04.md @@ -1,6 +1,6 @@ --- id: 663d762ab138308b52969b04 -title: Task 64 +title: Tarefa 64 challengeType: 22 dashedName: task-64 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d77a4930d448c314c0739.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d77a4930d448c314c0739.md index d34a979ef96..41d1220643d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d77a4930d448c314c0739.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663d77a4930d448c314c0739.md @@ -1,6 +1,6 @@ --- id: 663d77a4930d448c314c0739 -title: Task 65 +title: Tarefa 65 challengeType: 19 dashedName: task-65 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663e822e5223e819f2eb118d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663e822e5223e819f2eb118d.md index b5847824be2..28e85ef77e0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663e822e5223e819f2eb118d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/663e822e5223e819f2eb118d.md @@ -1,6 +1,6 @@ --- id: 663e822e5223e819f2eb118d -title: Task 66 +title: Tarefa 66 challengeType: 22 dashedName: task-66 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664142b603be4d4521520f50.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664142b603be4d4521520f50.md index 7e1d91993e8..f8602548331 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664142b603be4d4521520f50.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664142b603be4d4521520f50.md @@ -1,6 +1,6 @@ --- id: 664142b603be4d4521520f50 -title: Task 67 +title: Tarefa 67 challengeType: 19 dashedName: task-67 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664146aa13fd6746cd12f123.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664146aa13fd6746cd12f123.md index 151ca7cf111..651d1c8da60 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664146aa13fd6746cd12f123.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664146aa13fd6746cd12f123.md @@ -1,6 +1,6 @@ --- id: 664146aa13fd6746cd12f123 -title: Task 68 +title: Tarefa 68 challengeType: 22 dashedName: task-68 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414800bb3a0d47e9962cec.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414800bb3a0d47e9962cec.md index 1d67e219d68..16e0b82d39d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414800bb3a0d47e9962cec.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414800bb3a0d47e9962cec.md @@ -1,6 +1,6 @@ --- id: 66414800bb3a0d47e9962cec -title: Task 69 +title: Tarefa 69 challengeType: 22 dashedName: task-69 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6641495568b04c48f699b7f9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6641495568b04c48f699b7f9.md index 7888d306e16..087fcbbc192 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6641495568b04c48f699b7f9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6641495568b04c48f699b7f9.md @@ -1,6 +1,6 @@ --- id: 6641495568b04c48f699b7f9 -title: Task 70 +title: Tarefa 70 challengeType: 19 dashedName: task-70 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414b6b60f69749ebd1dda9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414b6b60f69749ebd1dda9.md index c65423976c5..2803994eddd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414b6b60f69749ebd1dda9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414b6b60f69749ebd1dda9.md @@ -1,6 +1,6 @@ --- id: 66414b6b60f69749ebd1dda9 -title: Task 71 +title: Tarefa 71 challengeType: 22 dashedName: task-71 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414c799e5c1f4ac17bc54d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414c799e5c1f4ac17bc54d.md index a9ab96195e5..38adf3df2f5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414c799e5c1f4ac17bc54d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66414c799e5c1f4ac17bc54d.md @@ -1,6 +1,6 @@ --- id: 66414c799e5c1f4ac17bc54d -title: Task 72 +title: Tarefa 72 challengeType: 19 dashedName: task-72 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664150b24f82ec4dc8d4f077.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664150b24f82ec4dc8d4f077.md index 979a8bbb9ca..3c5fb23e84e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664150b24f82ec4dc8d4f077.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664150b24f82ec4dc8d4f077.md @@ -9,9 +9,9 @@ dashedName: dialogue-5-arrangements-for-a-company-party Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video. +Assista ao vídeo. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664154f44e837f509dbea6d4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664154f44e837f509dbea6d4.md index d33b83b0a13..70c0ab601b9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664154f44e837f509dbea6d4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664154f44e837f509dbea6d4.md @@ -1,6 +1,6 @@ --- id: 664154f44e837f509dbea6d4 -title: Task 73 +title: Tarefa 73 challengeType: 19 dashedName: task-73 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6641570410a46551973bb25c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6641570410a46551973bb25c.md index 53a7c18d3d5..1e99e9758e0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6641570410a46551973bb25c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6641570410a46551973bb25c.md @@ -1,6 +1,6 @@ --- id: 6641570410a46551973bb25c -title: Task 74 +title: Tarefa 74 challengeType: 22 dashedName: task-74 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664159dd319cc352e511b057.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664159dd319cc352e511b057.md index d0f34aac939..b0e13d93cc8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664159dd319cc352e511b057.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664159dd319cc352e511b057.md @@ -1,6 +1,6 @@ --- id: 664159dd319cc352e511b057 -title: Task 75 +title: Tarefa 75 challengeType: 19 dashedName: task-75 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66415d2fc70cf753ed0723a4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66415d2fc70cf753ed0723a4.md index 0840f0f318e..de47d61442d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66415d2fc70cf753ed0723a4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66415d2fc70cf753ed0723a4.md @@ -1,6 +1,6 @@ --- id: 66415d2fc70cf753ed0723a4 -title: Task 76 +title: Tarefa 76 challengeType: 22 dashedName: task-76 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66415e9aa33e7054cc3da761.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66415e9aa33e7054cc3da761.md index d27cad5870b..b4a570f06b7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66415e9aa33e7054cc3da761.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66415e9aa33e7054cc3da761.md @@ -1,6 +1,6 @@ --- id: 66415e9aa33e7054cc3da761 -title: Task 77 +title: Tarefa 77 challengeType: 19 dashedName: task-77 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664274a516894a70a9111cb6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664274a516894a70a9111cb6.md index 4a9f2959789..32ac8c3bd72 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664274a516894a70a9111cb6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664274a516894a70a9111cb6.md @@ -1,6 +1,6 @@ --- id: 664274a516894a70a9111cb6 -title: Task 78 +title: Tarefa 78 challengeType: 19 dashedName: task-78 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6642914bd5def3734c59b763.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6642914bd5def3734c59b763.md index d8d05ed3f15..adb552b3c82 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6642914bd5def3734c59b763.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/6642914bd5def3734c59b763.md @@ -1,6 +1,6 @@ --- id: 6642914bd5def3734c59b763 -title: Task 79 +title: Tarefa 79 challengeType: 22 dashedName: task-79 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664292f34cfe2c744598162c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664292f34cfe2c744598162c.md index fbab957f1fd..2b6da88d338 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664292f34cfe2c744598162c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664292f34cfe2c744598162c.md @@ -1,6 +1,6 @@ --- id: 664292f34cfe2c744598162c -title: Task 80 +title: Tarefa 80 challengeType: 19 dashedName: task-80 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429658abee9b75dea25871.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429658abee9b75dea25871.md index f01a6aadf92..8d9ce9756b9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429658abee9b75dea25871.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429658abee9b75dea25871.md @@ -1,6 +1,6 @@ --- id: 66429658abee9b75dea25871 -title: Task 81 +title: Tarefa 81 challengeType: 22 dashedName: task-81 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664298c6fd5b8d77b7f2d6fb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664298c6fd5b8d77b7f2d6fb.md index 8780346f795..152c14ef743 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664298c6fd5b8d77b7f2d6fb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664298c6fd5b8d77b7f2d6fb.md @@ -1,6 +1,6 @@ --- id: 664298c6fd5b8d77b7f2d6fb -title: Task 82 +title: Tarefa 82 challengeType: 22 dashedName: task-82 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664299c450949978bda86771.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664299c450949978bda86771.md index fe2e8f2d143..d0996851698 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664299c450949978bda86771.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/664299c450949978bda86771.md @@ -1,6 +1,6 @@ --- id: 664299c450949978bda86771 -title: Task 83 +title: Tarefa 83 challengeType: 22 dashedName: task-83 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429a94355a0179708be94f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429a94355a0179708be94f.md index bbb8ffd04f6..89239df2236 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429a94355a0179708be94f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429a94355a0179708be94f.md @@ -1,6 +1,6 @@ --- id: 66429a94355a0179708be94f -title: Task 84 +title: Tarefa 84 challengeType: 19 dashedName: task-84 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429c74fa3c997a4ff881e8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429c74fa3c997a4ff881e8.md index 90797d38cd1..80c55efd19d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429c74fa3c997a4ff881e8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429c74fa3c997a4ff881e8.md @@ -1,6 +1,6 @@ --- id: 66429c74fa3c997a4ff881e8 -title: Task 85 +title: Tarefa 85 challengeType: 19 dashedName: task-85 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429ebe414f867b59b7843c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429ebe414f867b59b7843c.md index 30ace330f7a..ae7a40cda6f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429ebe414f867b59b7843c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/66429ebe414f867b59b7843c.md @@ -1,6 +1,6 @@ --- id: 66429ebe414f867b59b7843c -title: Task 86 +title: Tarefa 86 challengeType: 19 dashedName: task-86 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index 61f50779b0b..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5899f2ef74716d069180.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5899f2ef74716d069180.md index 8957a9d80ed..d122a265a75 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5899f2ef74716d069180.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5899f2ef74716d069180.md @@ -11,7 +11,7 @@ Watch the video to understand the context of the upcoming lessons. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b6522da78357de8428a19.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b6522da78357de8428a19.md index 141b2c77a90..4ff6e9f2edf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b6522da78357de8428a19.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b6522da78357de8428a19.md @@ -1,6 +1,6 @@ --- id: 655b6522da78357de8428a19 -title: Task 6 +title: Tarefa 6 challengeType: 19 dashedName: task-6 --- @@ -11,7 +11,7 @@ dashedName: task-6 James uses the present continuous tense to talk about actions happening at the moment of speaking or around it. -The present continuous is formed with the present tense of the verb `to be` (`am/is/are`) followed by the `-ing` form of the main verb. For example: +The present continuous is formed with the present tense of the verb `to be` (`am/is/are`) followed by the `-ing` form of the main verb. Por exemplo: `I am using` in `I am using special tools` shows an action James is currently working on. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b69293e6e9480ed5f6624.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b69293e6e9480ed5f6624.md index 2235cb35eea..792b6ba107c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b69293e6e9480ed5f6624.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b69293e6e9480ed5f6624.md @@ -1,6 +1,6 @@ --- id: 655b69293e6e9480ed5f6624 -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd1b0faed39415ed2760f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd1b0faed39415ed2760f.md index 971479f23fb..20511bcc571 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd1b0faed39415ed2760f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd1b0faed39415ed2760f.md @@ -11,7 +11,7 @@ Watch the video to understand the context of the upcoming lessons. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd2f3caad89436a3dcc04.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd2f3caad89436a3dcc04.md index 4592736780c..c1763644870 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd2f3caad89436a3dcc04.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd2f3caad89436a3dcc04.md @@ -1,6 +1,6 @@ --- id: 655bd2f3caad89436a3dcc04 -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd57d0e13e146b2404569.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd57d0e13e146b2404569.md index c524771cdc6..3edc353f961 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd57d0e13e146b2404569.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bd57d0e13e146b2404569.md @@ -1,6 +1,6 @@ --- id: 655bd57d0e13e146b2404569 -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bdc7e9c4116509df13f34.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bdc7e9c4116509df13f34.md index 33d45a61077..71643e71a73 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bdc7e9c4116509df13f34.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655bdc7e9c4116509df13f34.md @@ -11,7 +11,7 @@ dashedName: task-19 To `Use` means to use something for a purpose. -A `tool` is something that helps you do a job. In work, tools are often software or things on the computer. For example: +A `tool` is something that helps you do a job. In work, tools are often software or things on the computer. Por exemplo: `Using tools can make hard jobs easier` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index ef6f6a1cbbc..ae2a88d3c39 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- @@ -11,7 +11,7 @@ Watch the video to understand the context of the upcoming lessons. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9d9470acf0643482b95b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9d9470acf0643482b95b.md index f8d7d9265dd..3c0bc507848 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9d9470acf0643482b95b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9d9470acf0643482b95b.md @@ -1,6 +1,6 @@ --- id: 655c9d9470acf0643482b95b -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9e73e89d886538976452.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9e73e89d886538976452.md index e0e9684ff95..216d38a9af4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9e73e89d886538976452.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9e73e89d886538976452.md @@ -1,6 +1,6 @@ --- id: 655c9e73e89d886538976452 -title: Task 26 +title: Tarefa 26 challengeType: 22 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9ee249f7ef65f6d2dd36.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9ee249f7ef65f6d2dd36.md index 29902786c90..fc296ef6719 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9ee249f7ef65f6d2dd36.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9ee249f7ef65f6d2dd36.md @@ -1,6 +1,6 @@ --- id: 655c9ee249f7ef65f6d2dd36 -title: Task 27 +title: Tarefa 27 challengeType: 19 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655ca014b022ff6692049b91.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655ca014b022ff6692049b91.md index 4816e943f22..ae005531487 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655ca014b022ff6692049b91.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655ca014b022ff6692049b91.md @@ -11,7 +11,7 @@ dashedName: task-28 `Luck` refers to success or good things happening by chance, not because of what someone did. -It's often used in phrases like `good luck` to wish someone success. For example: +It's often used in phrases like `good luck` to wish someone success. Por exemplo: `He found his lost phone by luck.` (by chance) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655ca0a6639d6b67683ebbcd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655ca0a6639d6b67683ebbcd.md index f32c3e4b2f6..5fa8f561a98 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655ca0a6639d6b67683ebbcd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655ca0a6639d6b67683ebbcd.md @@ -11,7 +11,7 @@ Watch the video to understand the context of the upcoming lessons. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a2fa76e9c4636f6ac7a49.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a2fa76e9c4636f6ac7a49.md index 8cc6f095744..ec2c858f24d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a2fa76e9c4636f6ac7a49.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a2fa76e9c4636f6ac7a49.md @@ -1,6 +1,6 @@ --- id: 656a2fa76e9c4636f6ac7a49 -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a444cef055b4342f1f323.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a444cef055b4342f1f323.md index f62f702e698..c9048eca781 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a444cef055b4342f1f323.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a444cef055b4342f1f323.md @@ -1,6 +1,6 @@ --- id: 656a444cef055b4342f1f323 -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a45d4f36ea1448aa359d2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a45d4f36ea1448aa359d2.md index b93fae19d10..beb8ea70e30 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a45d4f36ea1448aa359d2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a45d4f36ea1448aa359d2.md @@ -1,6 +1,6 @@ --- id: 656a45d4f36ea1448aa359d2 -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a46e84a0ad845901ea907.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a46e84a0ad845901ea907.md index a4aa3da7470..361c2b11e1b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a46e84a0ad845901ea907.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a46e84a0ad845901ea907.md @@ -1,6 +1,6 @@ --- id: 656a46e84a0ad845901ea907 -title: Task 38 +title: Tarefa 38 challengeType: 22 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a47c9473b0f46463f7d55.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a47c9473b0f46463f7d55.md index 4de4d5df52b..74ecb9dff15 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a47c9473b0f46463f7d55.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a47c9473b0f46463f7d55.md @@ -1,6 +1,6 @@ --- id: 656a47c9473b0f46463f7d55 -title: Task 40 +title: Tarefa 40 challengeType: 19 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a494313c73747b15a02c0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a494313c73747b15a02c0.md index 9a8f0de6689..3f3ec0a2896 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a494313c73747b15a02c0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a494313c73747b15a02c0.md @@ -9,7 +9,7 @@ dashedName: dialogue-bob-and-sarah-talk-about-their-projects Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- Watch video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a49a16377b8485270dd2d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a49a16377b8485270dd2d.md index 87a7c1c0b20..f052f852e11 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a49a16377b8485270dd2d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a49a16377b8485270dd2d.md @@ -1,6 +1,6 @@ --- id: 656a49a16377b8485270dd2d -title: Task 43 +title: Tarefa 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4a4225a07e491ca4f31e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4a4225a07e491ca4f31e.md index f6c3d403a25..ae76323e988 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4a4225a07e491ca4f31e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4a4225a07e491ca4f31e.md @@ -1,6 +1,6 @@ --- id: 656a4a4225a07e491ca4f31e -title: Task 44 +title: Tarefa 44 challengeType: 19 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4a7596c46e495c64a7ec.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4a7596c46e495c64a7ec.md index dbecab166b1..873b2c8f845 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4a7596c46e495c64a7ec.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4a7596c46e495c64a7ec.md @@ -1,6 +1,6 @@ --- id: 656a4a7596c46e495c64a7ec -title: Task 45 +title: Tarefa 45 challengeType: 22 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4b4891e9e54a34dc4dcf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4b4891e9e54a34dc4dcf.md index f89a3c1183c..5298b731947 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4b4891e9e54a34dc4dcf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4b4891e9e54a34dc4dcf.md @@ -1,6 +1,6 @@ --- id: 656a4b4891e9e54a34dc4dcf -title: Task 48 +title: Tarefa 48 challengeType: 22 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4c92a476854b89f98ffd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4c92a476854b89f98ffd.md index 58474b889d5..da890f6ac3c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4c92a476854b89f98ffd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4c92a476854b89f98ffd.md @@ -1,6 +1,6 @@ --- id: 656a4c92a476854b89f98ffd -title: Task 52 +title: Tarefa 52 challengeType: 19 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4e001d2b804cdea7000a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4e001d2b804cdea7000a.md index e91cb3d2781..e7b10cb481d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4e001d2b804cdea7000a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4e001d2b804cdea7000a.md @@ -1,6 +1,6 @@ --- id: 656a4e001d2b804cdea7000a -title: Task 56 +title: Tarefa 56 challengeType: 19 dashedName: task-56 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4e8a59ef3c4d8dfc2ad9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4e8a59ef3c4d8dfc2ad9.md index 0e89352e761..61377ddc6aa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4e8a59ef3c4d8dfc2ad9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-describe-your-current-project/656a4e8a59ef3c4d8dfc2ad9.md @@ -1,6 +1,6 @@ --- id: 656a4e8a59ef3c4d8dfc2ad9 -title: Task 58 +title: Tarefa 58 challengeType: 22 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/655c111ce03db7881e612a27.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/655c111ce03db7881e612a27.md index 8130c0d636f..8640a507366 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/655c111ce03db7881e612a27.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/655c111ce03db7881e612a27.md @@ -7,11 +7,11 @@ dashedName: dialogue-1-talking-about-artificial-intelligence # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdc24bcb89e8162b96d954.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdc24bcb89e8162b96d954.md index 469833932e3..457b9c6a803 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdc24bcb89e8162b96d954.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdc24bcb89e8162b96d954.md @@ -9,9 +9,9 @@ dashedName: dialogue-2-talking-about-remote-work-and-collaboration-tools Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video. +Assista ao vídeo. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdc3c2cf0b9f186b30c7d4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdc3c2cf0b9f186b30c7d4.md index 9a3edb6468e..28cc0d770d3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdc3c2cf0b9f186b30c7d4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdc3c2cf0b9f186b30c7d4.md @@ -1,6 +1,6 @@ --- id: 65fdc3c2cf0b9f186b30c7d4 -title: Task 1 +title: Tarefa 1 challengeType: 19 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdce67e652825776635f7e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdce67e652825776635f7e.md index 2be0e77635e..ad12e94c8b6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdce67e652825776635f7e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdce67e652825776635f7e.md @@ -9,9 +9,9 @@ dashedName: dialogue-3-talking-about-quantum-computing Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video. +Assista ao vídeo. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdcfcd986a305a20de5e57.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdcfcd986a305a20de5e57.md index f30d9522805..e31a13532e2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdcfcd986a305a20de5e57.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdcfcd986a305a20de5e57.md @@ -9,9 +9,9 @@ dashedName: dialogue-4-talking-about-biometrics Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video. +Assista ao vídeo. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdd18dada8515bcb983337.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdd18dada8515bcb983337.md index 82ae4c345df..72a3d3e1dfe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdd18dada8515bcb983337.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fdd18dada8515bcb983337.md @@ -9,9 +9,9 @@ dashedName: dialogue-5-talking-about-augmented-reality Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video. +Assista ao vídeo. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fe10ef733aebd257f0677d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fe10ef733aebd257f0677d.md index 8186696bf9b..9be52a854fd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fe10ef733aebd257f0677d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fe10ef733aebd257f0677d.md @@ -1,6 +1,6 @@ --- id: 65fe10ef733aebd257f0677d -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fe1441bf249ff3ee517b63.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fe1441bf249ff3ee517b63.md index 5cf210b23e1..97c62eb6537 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fe1441bf249ff3ee517b63.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65fe1441bf249ff3ee517b63.md @@ -1,6 +1,6 @@ --- id: 65fe1441bf249ff3ee517b63 -title: Task 3 +title: Tarefa 3 challengeType: 19 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65ff086669d84512c7d132f1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65ff086669d84512c7d132f1.md index 5fe6590cf36..68e4e191df5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65ff086669d84512c7d132f1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/65ff086669d84512c7d132f1.md @@ -1,6 +1,6 @@ --- id: 65ff086669d84512c7d132f1 -title: Task 4 +title: Tarefa 4 challengeType: 22 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e123a11505168aa02850.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e123a11505168aa02850.md index fcff1c705fd..ebc7ac6a0b1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e123a11505168aa02850.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e123a11505168aa02850.md @@ -1,6 +1,6 @@ --- id: 6617e123a11505168aa02850 -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e5067ae22739491c8333.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e5067ae22739491c8333.md index 37eedf13f49..e481681a1b2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e5067ae22739491c8333.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e5067ae22739491c8333.md @@ -1,6 +1,6 @@ --- id: 6617e5067ae22739491c8333 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e75a204e044552675f58.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e75a204e044552675f58.md index 610a23b9e6b..c941331055e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e75a204e044552675f58.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617e75a204e044552675f58.md @@ -1,6 +1,6 @@ --- id: 6617e75a204e044552675f58 -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f4d790c1b470c3835818.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f4d790c1b470c3835818.md index 17b1a2817ff..705f54e9290 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f4d790c1b470c3835818.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f4d790c1b470c3835818.md @@ -1,6 +1,6 @@ --- id: 6617f4d790c1b470c3835818 -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f4e86152be717a0d3569.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f4e86152be717a0d3569.md index f009d5fd0b8..002c03a887f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f4e86152be717a0d3569.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f4e86152be717a0d3569.md @@ -1,6 +1,6 @@ --- id: 6617f4e86152be717a0d3569 -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f500f6a99d72213a5c92.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f500f6a99d72213a5c92.md index c8a1c3e7034..68cde4acb5c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f500f6a99d72213a5c92.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f500f6a99d72213a5c92.md @@ -1,6 +1,6 @@ --- id: 6617f500f6a99d72213a5c92 -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f517c76ecc72b9e6260b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f517c76ecc72b9e6260b.md index 4b8a38ff746..b2baf966a12 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f517c76ecc72b9e6260b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f517c76ecc72b9e6260b.md @@ -1,6 +1,6 @@ --- id: 6617f517c76ecc72b9e6260b -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f51ef25faa7314b76691.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f51ef25faa7314b76691.md index b014bf421a8..2a0ce481659 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f51ef25faa7314b76691.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f51ef25faa7314b76691.md @@ -1,6 +1,6 @@ --- id: 6617f51ef25faa7314b76691 -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f532491c4f7393c859a7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f532491c4f7393c859a7.md index 2433c5020e4..757ebbecb03 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f532491c4f7393c859a7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f532491c4f7393c859a7.md @@ -1,6 +1,6 @@ --- id: 6617f532491c4f7393c859a7 -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f539e6a21d73f1fdff0b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f539e6a21d73f1fdff0b.md index 8e39195fcbb..699bc54185c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f539e6a21d73f1fdff0b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f539e6a21d73f1fdff0b.md @@ -1,6 +1,6 @@ --- id: 6617f539e6a21d73f1fdff0b -title: Task 15 +title: Tarefa 15 challengeType: 22 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f546c322867470cb0d02.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f546c322867470cb0d02.md index b51fc5eab85..1c25fdc034b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f546c322867470cb0d02.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f546c322867470cb0d02.md @@ -1,6 +1,6 @@ --- id: 6617f546c322867470cb0d02 -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f552ea245c74ec9ba31c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f552ea245c74ec9ba31c.md index 3ceaf815fe8..9abc2dd80c8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f552ea245c74ec9ba31c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f552ea245c74ec9ba31c.md @@ -1,6 +1,6 @@ --- id: 6617f552ea245c74ec9ba31c -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f560bb343c757c0d85fb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f560bb343c757c0d85fb.md index b2a432657d0..cc90904913b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f560bb343c757c0d85fb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6617f560bb343c757c0d85fb.md @@ -1,6 +1,6 @@ --- id: 6617f560bb343c757c0d85fb -title: Task 19 +title: Tarefa 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661811bce448257e10e8e1e9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661811bce448257e10e8e1e9.md index cd7aa8d2435..a5251de06df 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661811bce448257e10e8e1e9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661811bce448257e10e8e1e9.md @@ -1,6 +1,6 @@ --- id: 661811bce448257e10e8e1e9 -title: Task 18 +title: Tarefa 18 challengeType: 22 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6618129f75df1d7f0af1c3c0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6618129f75df1d7f0af1c3c0.md index d74785fe395..1ab43902fc3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6618129f75df1d7f0af1c3c0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6618129f75df1d7f0af1c3c0.md @@ -1,6 +1,6 @@ --- id: 6618129f75df1d7f0af1c3c0 -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6618506a28b7340074a7512a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6618506a28b7340074a7512a.md index a81aabfce97..b135f36cf53 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6618506a28b7340074a7512a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6618506a28b7340074a7512a.md @@ -1,6 +1,6 @@ --- id: 6618506a28b7340074a7512a -title: Task 10 +title: Tarefa 10 challengeType: 22 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918b4f8dc067669326ac6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918b4f8dc067669326ac6.md index b461b0ac88c..c687ae45bf0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918b4f8dc067669326ac6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918b4f8dc067669326ac6.md @@ -1,6 +1,6 @@ --- id: 661918b4f8dc067669326ac6 -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918bb4626e7770c416e91.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918bb4626e7770c416e91.md index 6dba716ae8e..14552a0f089 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918bb4626e7770c416e91.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918bb4626e7770c416e91.md @@ -1,6 +1,6 @@ --- id: 661918bb4626e7770c416e91 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- @@ -19,7 +19,7 @@ Which `collaboration tool` is commonly used for real-time text communication? ## --answers-- -Email +E-mail ### --feedback-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918cca4435877962d595a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918cca4435877962d595a.md index c0da3d4cda1..f7eaa9b2e1a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918cca4435877962d595a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918cca4435877962d595a.md @@ -1,6 +1,6 @@ --- id: 661918cca4435877962d595a -title: Task 23 +title: Tarefa 23 challengeType: 22 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918e3626bbf77fefcffcf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918e3626bbf77fefcffcf.md index 1eda608c040..f2a08b0890a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918e3626bbf77fefcffcf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918e3626bbf77fefcffcf.md @@ -1,6 +1,6 @@ --- id: 661918e3626bbf77fefcffcf -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918e976fea8785956cd12.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918e976fea8785956cd12.md index 36c0d9e620f..659b63d7eea 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918e976fea8785956cd12.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918e976fea8785956cd12.md @@ -1,6 +1,6 @@ --- id: 661918e976fea8785956cd12 -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918fafa78d478d0e9dc87.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918fafa78d478d0e9dc87.md index febf950e7b2..188f0d2e385 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918fafa78d478d0e9dc87.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918fafa78d478d0e9dc87.md @@ -1,6 +1,6 @@ --- id: 661918fafa78d478d0e9dc87 -title: Task 27 +title: Tarefa 27 challengeType: 19 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918ff8203057931fb6412.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918ff8203057931fb6412.md index b2c78c25fb5..0ed8d76181c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918ff8203057931fb6412.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661918ff8203057931fb6412.md @@ -1,6 +1,6 @@ --- id: 661918ff8203057931fb6412 -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191905e86bc9798f6b903a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191905e86bc9798f6b903a.md index ecade0f9828..47d07ae0cb7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191905e86bc9798f6b903a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191905e86bc9798f6b903a.md @@ -1,6 +1,6 @@ --- id: 66191905e86bc9798f6b903a -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191916ab984979f9a1ae9d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191916ab984979f9a1ae9d.md index 86ed471f360..6513d06b95c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191916ab984979f9a1ae9d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191916ab984979f9a1ae9d.md @@ -1,6 +1,6 @@ --- id: 66191916ab984979f9a1ae9d -title: Task 30 +title: Tarefa 30 challengeType: 19 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619191be66af37a5152b69b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619191be66af37a5152b69b.md index 95bfec778b9..74207680ddf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619191be66af37a5152b69b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619191be66af37a5152b69b.md @@ -1,6 +1,6 @@ --- id: 6619191be66af37a5152b69b -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191920b7e6dc7aacd28e07.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191920b7e6dc7aacd28e07.md index c0bb0942992..9c51f9beeeb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191920b7e6dc7aacd28e07.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191920b7e6dc7aacd28e07.md @@ -1,6 +1,6 @@ --- id: 66191920b7e6dc7aacd28e07 -title: Task 33 +title: Tarefa 33 challengeType: 22 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619192ad58dc37b221da83c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619192ad58dc37b221da83c.md index d7389fa2bae..e21ebfe72f3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619192ad58dc37b221da83c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619192ad58dc37b221da83c.md @@ -1,6 +1,6 @@ --- id: 6619192ad58dc37b221da83c -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619192e29a7f77b7a73d556.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619192e29a7f77b7a73d556.md index 8ce101949b4..eb099cb3d98 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619192e29a7f77b7a73d556.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619192e29a7f77b7a73d556.md @@ -1,6 +1,6 @@ --- id: 6619192e29a7f77b7a73d556 -title: Task 35 +title: Tarefa 35 challengeType: 19 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191932f2fa967bbe2f5ac3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191932f2fa967bbe2f5ac3.md index 20d2bb19e66..b6164dd5257 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191932f2fa967bbe2f5ac3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66191932f2fa967bbe2f5ac3.md @@ -1,6 +1,6 @@ --- id: 66191932f2fa967bbe2f5ac3 -title: Task 38 +title: Tarefa 38 challengeType: 19 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661920391cc3297ee7350b33.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661920391cc3297ee7350b33.md index 878887c28e9..ea6bb89e4d0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661920391cc3297ee7350b33.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661920391cc3297ee7350b33.md @@ -1,6 +1,6 @@ --- id: 661920391cc3297ee7350b33 -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66192c57ba758e85c4f2d766.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66192c57ba758e85c4f2d766.md index a6d74bd3320..b01d100ab2e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66192c57ba758e85c4f2d766.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66192c57ba758e85c4f2d766.md @@ -1,6 +1,6 @@ --- id: 66192c57ba758e85c4f2d766 -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661934977df94b891d403ca9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661934977df94b891d403ca9.md index 9db46933751..95b5bbb964a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661934977df94b891d403ca9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661934977df94b891d403ca9.md @@ -1,6 +1,6 @@ --- id: 661934977df94b891d403ca9 -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619364db35ae78a30a4a48b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619364db35ae78a30a4a48b.md index 0306db33ac2..8d5bab3d8a3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619364db35ae78a30a4a48b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619364db35ae78a30a4a48b.md @@ -1,6 +1,6 @@ --- id: 6619364db35ae78a30a4a48b -title: Task 37 +title: Tarefa 37 challengeType: 22 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661939c3f5ce238bfafba2b4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661939c3f5ce238bfafba2b4.md index eaca75481b5..8d59ad02479 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661939c3f5ce238bfafba2b4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661939c3f5ce238bfafba2b4.md @@ -1,6 +1,6 @@ --- id: 661939c3f5ce238bfafba2b4 -title: Task 39 +title: Tarefa 39 challengeType: 22 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66193b1deee8db8cfe3bc5c1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66193b1deee8db8cfe3bc5c1.md index ab4bcbbc966..1f95f689254 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66193b1deee8db8cfe3bc5c1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66193b1deee8db8cfe3bc5c1.md @@ -1,6 +1,6 @@ --- id: 66193b1deee8db8cfe3bc5c1 -title: Task 40 +title: Tarefa 40 challengeType: 19 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66195ca035cf05015d8ab62f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66195ca035cf05015d8ab62f.md index e69d670a6a8..0e8ba73c949 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66195ca035cf05015d8ab62f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66195ca035cf05015d8ab62f.md @@ -1,6 +1,6 @@ --- id: 66195ca035cf05015d8ab62f -title: Task 41 +title: Tarefa 41 challengeType: 22 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66195f137aa45a02467f9da6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66195f137aa45a02467f9da6.md index 29042beef24..68904f0b16e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66195f137aa45a02467f9da6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66195f137aa45a02467f9da6.md @@ -1,6 +1,6 @@ --- id: 66195f137aa45a02467f9da6 -title: Task 42 +title: Tarefa 42 challengeType: 22 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661960a9ed46f9037e252329.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661960a9ed46f9037e252329.md index 7349eeb5138..d514018793f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661960a9ed46f9037e252329.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661960a9ed46f9037e252329.md @@ -1,6 +1,6 @@ --- id: 661960a9ed46f9037e252329 -title: Task 43 +title: Tarefa 43 challengeType: 19 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661962ea6cd127049ca20b86.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661962ea6cd127049ca20b86.md index 8625d4590d7..fbb09854595 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661962ea6cd127049ca20b86.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661962ea6cd127049ca20b86.md @@ -1,6 +1,6 @@ --- id: 661962ea6cd127049ca20b86 -title: Task 44 +title: Tarefa 44 challengeType: 22 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661965b181f27d0595a0e67a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661965b181f27d0595a0e67a.md index e7951030ca9..336d82cf2a3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661965b181f27d0595a0e67a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661965b181f27d0595a0e67a.md @@ -1,6 +1,6 @@ --- id: 661965b181f27d0595a0e67a -title: Task 45 +title: Tarefa 45 challengeType: 19 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661967b58a6d41069b47f602.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661967b58a6d41069b47f602.md index abc97bb0872..cd127d87f6e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661967b58a6d41069b47f602.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661967b58a6d41069b47f602.md @@ -1,6 +1,6 @@ --- id: 661967b58a6d41069b47f602 -title: Task 46 +title: Tarefa 46 challengeType: 22 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619694e433188077c71d7ce.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619694e433188077c71d7ce.md index 80362cb71ae..70a7d134f79 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619694e433188077c71d7ce.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619694e433188077c71d7ce.md @@ -1,6 +1,6 @@ --- id: 6619694e433188077c71d7ce -title: Task 47 +title: Tarefa 47 challengeType: 22 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66199df94bdd5c4de6c6fd00.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66199df94bdd5c4de6c6fd00.md index 5a219460a2b..8d1c7bd1f2a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66199df94bdd5c4de6c6fd00.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/66199df94bdd5c4de6c6fd00.md @@ -1,6 +1,6 @@ --- id: 66199df94bdd5c4de6c6fd00 -title: Task 48 +title: Tarefa 48 challengeType: 22 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619a04a1764834f38e43c85.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619a04a1764834f38e43c85.md index 0b902fc7a4c..4feac61f68c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619a04a1764834f38e43c85.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619a04a1764834f38e43c85.md @@ -1,6 +1,6 @@ --- id: 6619a04a1764834f38e43c85 -title: Task 49 +title: Tarefa 49 challengeType: 19 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619a3859a7988504633e9b0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619a3859a7988504633e9b0.md index 810d8444090..4c4b56b03e5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619a3859a7988504633e9b0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619a3859a7988504633e9b0.md @@ -1,6 +1,6 @@ --- id: 6619a3859a7988504633e9b0 -title: Task 50 +title: Tarefa 50 challengeType: 22 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619b420967139534c777c95.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619b420967139534c777c95.md index e52094020f9..0df3a341b67 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619b420967139534c777c95.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619b420967139534c777c95.md @@ -1,6 +1,6 @@ --- id: 6619b420967139534c777c95 -title: Task 51 +title: Tarefa 51 challengeType: 22 dashedName: task-51 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619c19ff141525653592e28.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619c19ff141525653592e28.md index 563e13103f3..0520df4fc96 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619c19ff141525653592e28.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619c19ff141525653592e28.md @@ -1,6 +1,6 @@ --- id: 6619c19ff141525653592e28 -title: Task 52 +title: Tarefa 52 challengeType: 22 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619e52962779d5b224e1f90.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619e52962779d5b224e1f90.md index 09102abe5f3..d20f6acf54c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619e52962779d5b224e1f90.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619e52962779d5b224e1f90.md @@ -1,6 +1,6 @@ --- id: 6619e52962779d5b224e1f90 -title: Task 53 +title: Tarefa 53 challengeType: 22 dashedName: task-53 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619e90b0cf1085c4e4b66bc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619e90b0cf1085c4e4b66bc.md index 6c2a307d052..4f554b61ae5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619e90b0cf1085c4e4b66bc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619e90b0cf1085c4e4b66bc.md @@ -1,6 +1,6 @@ --- id: 6619e90b0cf1085c4e4b66bc -title: Task 54 +title: Tarefa 54 challengeType: 19 dashedName: task-54 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619ec6c2310ea5f3eea6f4a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619ec6c2310ea5f3eea6f4a.md index b3568c7a951..a673daf52b9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619ec6c2310ea5f3eea6f4a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619ec6c2310ea5f3eea6f4a.md @@ -1,6 +1,6 @@ --- id: 6619ec6c2310ea5f3eea6f4a -title: Task 55 +title: Tarefa 55 challengeType: 22 dashedName: task-55 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619eea6ff1e07606fb64c13.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619eea6ff1e07606fb64c13.md index 0759097356b..c6bcba55903 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619eea6ff1e07606fb64c13.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619eea6ff1e07606fb64c13.md @@ -1,6 +1,6 @@ --- id: 6619eea6ff1e07606fb64c13 -title: Task 56 +title: Tarefa 56 challengeType: 22 dashedName: task-56 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619f1096f23a0619be8795c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619f1096f23a0619be8795c.md index 1eb0bf4f301..563a0d64087 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619f1096f23a0619be8795c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619f1096f23a0619be8795c.md @@ -1,6 +1,6 @@ --- id: 6619f1096f23a0619be8795c -title: Task 57 +title: Tarefa 57 challengeType: 19 dashedName: task-57 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619f35ae8ccb362d4d2d485.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619f35ae8ccb362d4d2d485.md index 448b7441edf..8555859aa06 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619f35ae8ccb362d4d2d485.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/6619f35ae8ccb362d4d2d485.md @@ -1,6 +1,6 @@ --- id: 6619f35ae8ccb362d4d2d485 -title: Task 58 +title: Tarefa 58 challengeType: 19 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae3524b312bc38efcd2c6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae3524b312bc38efcd2c6.md index 7bc6bac1fa8..ac4059f000c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae3524b312bc38efcd2c6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae3524b312bc38efcd2c6.md @@ -1,6 +1,6 @@ --- id: 661ae3524b312bc38efcd2c6 -title: Task 59 +title: Tarefa 59 challengeType: 19 dashedName: task-59 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae52c7bcb38c507d2b54a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae52c7bcb38c507d2b54a.md index 71a06d9367e..7138ca04b8b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae52c7bcb38c507d2b54a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae52c7bcb38c507d2b54a.md @@ -1,6 +1,6 @@ --- id: 661ae52c7bcb38c507d2b54a -title: Task 60 +title: Tarefa 60 challengeType: 19 dashedName: task-60 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae82d5c4b5dc68e84f409.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae82d5c4b5dc68e84f409.md index 9457ce76dd0..6b3bea63d7d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae82d5c4b5dc68e84f409.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae82d5c4b5dc68e84f409.md @@ -1,6 +1,6 @@ --- id: 661ae82d5c4b5dc68e84f409 -title: Task 61 +title: Tarefa 61 challengeType: 19 dashedName: task-61 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae8e967096cc75830f5b1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae8e967096cc75830f5b1.md index 6aa71ec3343..ab8400ad647 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae8e967096cc75830f5b1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ae8e967096cc75830f5b1.md @@ -1,6 +1,6 @@ --- id: 661ae8e967096cc75830f5b1 -title: Task 62 +title: Tarefa 62 challengeType: 22 dashedName: task-62 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aeb62c0cf70c99147fbe9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aeb62c0cf70c99147fbe9.md index 48f2baa42c1..a6c12fda6d9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aeb62c0cf70c99147fbe9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aeb62c0cf70c99147fbe9.md @@ -1,6 +1,6 @@ --- id: 661aeb62c0cf70c99147fbe9 -title: Task 63 +title: Tarefa 63 challengeType: 22 dashedName: task-63 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aedc854df65ca707fab88.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aedc854df65ca707fab88.md index 8390d73d857..fb7147f1b5f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aedc854df65ca707fab88.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aedc854df65ca707fab88.md @@ -1,6 +1,6 @@ --- id: 661aedc854df65ca707fab88 -title: Task 64 +title: Tarefa 64 challengeType: 19 dashedName: task-64 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aeec49a6635cb37599db1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aeec49a6635cb37599db1.md index 6351c37627b..ae62ff187ad 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aeec49a6635cb37599db1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661aeec49a6635cb37599db1.md @@ -1,6 +1,6 @@ --- id: 661aeec49a6635cb37599db1 -title: Task 65 +title: Tarefa 65 challengeType: 22 dashedName: task-65 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd3fc29debe22a71eedb5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd3fc29debe22a71eedb5.md index 7ba96252b51..8809e6c2c6d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd3fc29debe22a71eedb5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd3fc29debe22a71eedb5.md @@ -1,6 +1,6 @@ --- id: 661bd3fc29debe22a71eedb5 -title: Task 66 +title: Tarefa 66 challengeType: 19 dashedName: task-66 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd56a0154b323bd171a78.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd56a0154b323bd171a78.md index 7be0d7b7272..9ac7f4a49c1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd56a0154b323bd171a78.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd56a0154b323bd171a78.md @@ -1,6 +1,6 @@ --- id: 661bd56a0154b323bd171a78 -title: Task 67 +title: Tarefa 67 challengeType: 22 dashedName: task-67 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd63b63586e25c1863cfd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd63b63586e25c1863cfd.md index 5c045965fba..0fb34f7d435 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd63b63586e25c1863cfd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd63b63586e25c1863cfd.md @@ -1,6 +1,6 @@ --- id: 661bd63b63586e25c1863cfd -title: Task 68 +title: Tarefa 68 challengeType: 19 dashedName: task-68 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd79d5c288226d64bf03c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd79d5c288226d64bf03c.md index 6788e948fec..48592f2de5c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd79d5c288226d64bf03c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd79d5c288226d64bf03c.md @@ -1,6 +1,6 @@ --- id: 661bd79d5c288226d64bf03c -title: Task 69 +title: Tarefa 69 challengeType: 19 dashedName: task-69 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd8ff4ef42827cd22b46f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd8ff4ef42827cd22b46f.md index dda66c0281d..1e98a10d4a7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd8ff4ef42827cd22b46f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bd8ff4ef42827cd22b46f.md @@ -1,6 +1,6 @@ --- id: 661bd8ff4ef42827cd22b46f -title: Task 70 +title: Tarefa 70 challengeType: 19 dashedName: task-70 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdbcf1d85c329ce8ef7b1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdbcf1d85c329ce8ef7b1.md index 5428ce5905a..e2222926fa9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdbcf1d85c329ce8ef7b1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdbcf1d85c329ce8ef7b1.md @@ -1,6 +1,6 @@ --- id: 661bdbcf1d85c329ce8ef7b1 -title: Task 71 +title: Tarefa 71 challengeType: 19 dashedName: task-71 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdcc98f5d9b2ab8d2ec69.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdcc98f5d9b2ab8d2ec69.md index d544e39a931..1fa96c16dd8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdcc98f5d9b2ab8d2ec69.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdcc98f5d9b2ab8d2ec69.md @@ -1,6 +1,6 @@ --- id: 661bdcc98f5d9b2ab8d2ec69 -title: Task 72 +title: Tarefa 72 challengeType: 22 dashedName: task-72 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bddbdbbc09e2b8fac0801.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bddbdbbc09e2b8fac0801.md index e9d9235b054..df33a01a0d7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bddbdbbc09e2b8fac0801.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bddbdbbc09e2b8fac0801.md @@ -1,6 +1,6 @@ --- id: 661bddbdbbc09e2b8fac0801 -title: Task 73 +title: Tarefa 73 challengeType: 22 dashedName: task-73 --- @@ -11,7 +11,7 @@ dashedName: task-73 The preposition `at` indicates a point on a map. It tells you a specific location or position. It helps you understand where something is happening or where someone is. -Examples: +Exemplos: `We'll meet at the coffee shop.` (in this sentence, `at` is used to specify the location where the meeting will take place - the coffee shop). diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdee600dd352c60d0143e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdee600dd352c60d0143e.md index cf8bc794644..6f008f7ccbb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdee600dd352c60d0143e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661bdee600dd352c60d0143e.md @@ -1,6 +1,6 @@ --- id: 661bdee600dd352c60d0143e -title: Task 74 +title: Tarefa 74 challengeType: 22 dashedName: task-74 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661be07313e6ef2d509c3f52.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661be07313e6ef2d509c3f52.md index b6ce939fb89..336e3eba18a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661be07313e6ef2d509c3f52.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661be07313e6ef2d509c3f52.md @@ -1,6 +1,6 @@ --- id: 661be07313e6ef2d509c3f52 -title: Task 75 +title: Tarefa 75 challengeType: 19 dashedName: task-75 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eb97a2eb89a1ecd9a507a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eb97a2eb89a1ecd9a507a.md index 0bba862c515..d08172a38b6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eb97a2eb89a1ecd9a507a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eb97a2eb89a1ecd9a507a.md @@ -1,6 +1,6 @@ --- id: 661eb97a2eb89a1ecd9a507a -title: Task 76 +title: Tarefa 76 challengeType: 22 dashedName: task-76 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebaf8b803451ff4b50a69.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebaf8b803451ff4b50a69.md index f0b27f20610..a51e784c170 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebaf8b803451ff4b50a69.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebaf8b803451ff4b50a69.md @@ -1,6 +1,6 @@ --- id: 661ebaf8b803451ff4b50a69 -title: Task 77 +title: Tarefa 77 challengeType: 19 dashedName: task-77 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebcd0e68e8820d99577c5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebcd0e68e8820d99577c5.md index 65ebe25040b..3a924089e42 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebcd0e68e8820d99577c5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebcd0e68e8820d99577c5.md @@ -1,6 +1,6 @@ --- id: 661ebcd0e68e8820d99577c5 -title: Task 78 +title: Tarefa 78 challengeType: 22 dashedName: task-78 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebf11bfc6a72252a17fd6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebf11bfc6a72252a17fd6.md index 9790f1137b4..ccebd6ae142 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebf11bfc6a72252a17fd6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ebf11bfc6a72252a17fd6.md @@ -1,6 +1,6 @@ --- id: 661ebf11bfc6a72252a17fd6 -title: Task 79 +title: Tarefa 79 challengeType: 22 dashedName: task-79 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec00f710b5c232f2ac3d6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec00f710b5c232f2ac3d6.md index 46954033f23..4d2dcb24f06 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec00f710b5c232f2ac3d6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec00f710b5c232f2ac3d6.md @@ -1,6 +1,6 @@ --- id: 661ec00f710b5c232f2ac3d6 -title: Task 80 +title: Tarefa 80 challengeType: 19 dashedName: task-80 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec0de154fc223f87a3e44.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec0de154fc223f87a3e44.md index ad3aca06ce9..a3373abfaf0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec0de154fc223f87a3e44.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec0de154fc223f87a3e44.md @@ -1,6 +1,6 @@ --- id: 661ec0de154fc223f87a3e44 -title: Task 81 +title: Tarefa 81 challengeType: 22 dashedName: task-81 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec1f0f4216124b5e450dd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec1f0f4216124b5e450dd.md index 232b036b4b6..61a93760b6b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec1f0f4216124b5e450dd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec1f0f4216124b5e450dd.md @@ -1,6 +1,6 @@ --- id: 661ec1f0f4216124b5e450dd -title: Task 82 +title: Tarefa 82 challengeType: 22 dashedName: task-82 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec3695be80025c0dcd556.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec3695be80025c0dcd556.md index de4f0127596..f5359f4bf98 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec3695be80025c0dcd556.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec3695be80025c0dcd556.md @@ -1,6 +1,6 @@ --- id: 661ec3695be80025c0dcd556 -title: Task 83 +title: Tarefa 83 challengeType: 22 dashedName: task-83 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec4ab724bde26bf656574.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec4ab724bde26bf656574.md index 2712796a4ae..8159d098655 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec4ab724bde26bf656574.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec4ab724bde26bf656574.md @@ -1,6 +1,6 @@ --- id: 661ec4ab724bde26bf656574 -title: Task 84 +title: Tarefa 84 challengeType: 19 dashedName: task-84 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec6f5966e9027ab9756dc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec6f5966e9027ab9756dc.md index e70b7399201..16366cf5bef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec6f5966e9027ab9756dc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec6f5966e9027ab9756dc.md @@ -1,6 +1,6 @@ --- id: 661ec6f5966e9027ab9756dc -title: Task 85 +title: Tarefa 85 challengeType: 19 dashedName: task-85 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec8fa433f6e28aa69812c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec8fa433f6e28aa69812c.md index 9be116ac4d2..a580a449f78 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec8fa433f6e28aa69812c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec8fa433f6e28aa69812c.md @@ -1,6 +1,6 @@ --- id: 661ec8fa433f6e28aa69812c -title: Task 86 +title: Tarefa 86 challengeType: 19 dashedName: task-86 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec9b63618da29bcfe55a5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec9b63618da29bcfe55a5.md index 9a01248be9c..99a14386e4c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec9b63618da29bcfe55a5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ec9b63618da29bcfe55a5.md @@ -1,6 +1,6 @@ --- id: 661ec9b63618da29bcfe55a5 -title: Task 87 +title: Tarefa 87 challengeType: 22 dashedName: task-87 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ed01f09114567cc8fa939.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ed01f09114567cc8fa939.md index f0ec9ebc47a..2fe81aee5ec 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ed01f09114567cc8fa939.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ed01f09114567cc8fa939.md @@ -1,6 +1,6 @@ --- id: 661ed01f09114567cc8fa939 -title: Task 88 +title: Tarefa 88 challengeType: 22 dashedName: task-88 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ed71bed334e6bac73cac5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ed71bed334e6bac73cac5.md index 36d47a72235..3a9518cd9ce 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ed71bed334e6bac73cac5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ed71bed334e6bac73cac5.md @@ -1,6 +1,6 @@ --- id: 661ed71bed334e6bac73cac5 -title: Task 89 +title: Tarefa 89 challengeType: 19 dashedName: task-89 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661edda6df434c6f2161bea5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661edda6df434c6f2161bea5.md index 5d45ab83f2c..55aa312fc9e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661edda6df434c6f2161bea5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661edda6df434c6f2161bea5.md @@ -1,6 +1,6 @@ --- id: 661edda6df434c6f2161bea5 -title: Task 90 +title: Tarefa 90 challengeType: 19 dashedName: task-90 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661edfb33a4dc570a763a05a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661edfb33a4dc570a763a05a.md index cae4660aef4..ae0908993c7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661edfb33a4dc570a763a05a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661edfb33a4dc570a763a05a.md @@ -1,6 +1,6 @@ --- id: 661edfb33a4dc570a763a05a -title: Task 91 +title: Tarefa 91 challengeType: 19 dashedName: task-91 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee1436ecb9271c66be82c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee1436ecb9271c66be82c.md index bdac0324a37..2698cd7af24 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee1436ecb9271c66be82c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee1436ecb9271c66be82c.md @@ -1,6 +1,6 @@ --- id: 661ee1436ecb9271c66be82c -title: Task 92 +title: Tarefa 92 challengeType: 22 dashedName: task-92 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee36af2d2c772f247f6b6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee36af2d2c772f247f6b6.md index c2b897b6334..bee061c8656 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee36af2d2c772f247f6b6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee36af2d2c772f247f6b6.md @@ -1,6 +1,6 @@ --- id: 661ee36af2d2c772f247f6b6 -title: Task 93 +title: Tarefa 93 challengeType: 19 dashedName: task-93 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee552f40b9874237df84b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee552f40b9874237df84b.md index 610f4b7a5b2..d20da2e26cf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee552f40b9874237df84b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee552f40b9874237df84b.md @@ -1,6 +1,6 @@ --- id: 661ee552f40b9874237df84b -title: Task 95 +title: Tarefa 95 challengeType: 19 dashedName: task-95 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee8082f62ac75392224eb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee8082f62ac75392224eb.md index 80e27189ad7..acb144ce31d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee8082f62ac75392224eb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee8082f62ac75392224eb.md @@ -1,6 +1,6 @@ --- id: 661ee8082f62ac75392224eb -title: Task 94 +title: Tarefa 94 challengeType: 19 dashedName: task-94 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee943945b22763d8ef29a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee943945b22763d8ef29a.md index dcc384b6319..d8172bfc421 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee943945b22763d8ef29a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ee943945b22763d8ef29a.md @@ -1,6 +1,6 @@ --- id: 661ee943945b22763d8ef29a -title: Task 96 +title: Tarefa 96 challengeType: 19 dashedName: task-96 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eea69ca8a5177320d5e90.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eea69ca8a5177320d5e90.md index c9dd4ad19d9..7a0023efad0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eea69ca8a5177320d5e90.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eea69ca8a5177320d5e90.md @@ -1,6 +1,6 @@ --- id: 661eea69ca8a5177320d5e90 -title: Task 97 +title: Tarefa 97 challengeType: 22 dashedName: task-97 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eec2eeb773977fecc123d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eec2eeb773977fecc123d.md index 0e48dc15030..b5cbfa00dd5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eec2eeb773977fecc123d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eec2eeb773977fecc123d.md @@ -1,6 +1,6 @@ --- id: 661eec2eeb773977fecc123d -title: Task 98 +title: Tarefa 98 challengeType: 22 dashedName: task-98 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eed09f4b5ed78d2d12e59.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eed09f4b5ed78d2d12e59.md index 0478abfad95..cff6f701c8d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eed09f4b5ed78d2d12e59.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eed09f4b5ed78d2d12e59.md @@ -1,6 +1,6 @@ --- id: 661eed09f4b5ed78d2d12e59 -title: Task 99 +title: Tarefa 99 challengeType: 19 dashedName: task-99 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eedfdd116c27b62029999.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eedfdd116c27b62029999.md index ff8067a1a6e..39cf2ff8b0f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eedfdd116c27b62029999.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eedfdd116c27b62029999.md @@ -1,6 +1,6 @@ --- id: 661eedfdd116c27b62029999 -title: Task 100 +title: Tarefa 100 challengeType: 22 dashedName: task-100 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eeede39f9547c34267bcc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eeede39f9547c34267bcc.md index 213a5a17f68..3dd5d3f382a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eeede39f9547c34267bcc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eeede39f9547c34267bcc.md @@ -1,6 +1,6 @@ --- id: 661eeede39f9547c34267bcc -title: Task 101 +title: Tarefa 101 challengeType: 19 dashedName: task-101 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eefbfc65d087cf3566591.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eefbfc65d087cf3566591.md index fcd07ba3f69..ef50b79d8a0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eefbfc65d087cf3566591.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661eefbfc65d087cf3566591.md @@ -1,6 +1,6 @@ --- id: 661eefbfc65d087cf3566591 -title: Task 102 +title: Tarefa 102 challengeType: 19 dashedName: task-102 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef077d0f4037daaae8a88.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef077d0f4037daaae8a88.md index 21b3e3632e8..dd694f76f17 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef077d0f4037daaae8a88.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef077d0f4037daaae8a88.md @@ -1,6 +1,6 @@ --- id: 661ef077d0f4037daaae8a88 -title: Task 103 +title: Tarefa 103 challengeType: 19 dashedName: task-103 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef18cf60dc87ebdaf405d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef18cf60dc87ebdaf405d.md index 96102f3c40b..777cf3c0341 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef18cf60dc87ebdaf405d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef18cf60dc87ebdaf405d.md @@ -1,6 +1,6 @@ --- id: 661ef18cf60dc87ebdaf405d -title: Task 104 +title: Tarefa 104 challengeType: 22 dashedName: task-104 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef27056f2c37f93141988.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef27056f2c37f93141988.md index 075d56274e6..2235737c0ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef27056f2c37f93141988.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/661ef27056f2c37f93141988.md @@ -1,6 +1,6 @@ --- id: 661ef27056f2c37f93141988 -title: Task 105 +title: Tarefa 105 challengeType: 22 dashedName: task-105 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 1f8b55cd077..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..b469894cbd2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,17 +1,17 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dde5120c33f904f47a62.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dde5120c33f904f47a62.md index 029255e3912..be458329300 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dde5120c33f904f47a62.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dde5120c33f904f47a62.md @@ -1,6 +1,6 @@ --- id: 65b0dde5120c33f904f47a62 -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22b3556d52217d9595372.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22b3556d52217d9595372.md index b73fc0e0afc..f0b98ac39ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22b3556d52217d9595372.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22b3556d52217d9595372.md @@ -1,6 +1,6 @@ --- id: 65b22b3556d52217d9595372 -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22c705b53e41be902b63b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22c705b53e41be902b63b.md index 85d6142fd54..8e2f8fb38b3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22c705b53e41be902b63b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22c705b53e41be902b63b.md @@ -1,6 +1,6 @@ --- id: 65b22c705b53e41be902b63b -title: Task 3 +title: Tarefa 3 challengeType: 19 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22d1aeb5ecf1d590d30bf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22d1aeb5ecf1d590d30bf.md index c568c82a56e..2f81fb653e7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22d1aeb5ecf1d590d30bf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22d1aeb5ecf1d590d30bf.md @@ -1,6 +1,6 @@ --- id: 65b22d1aeb5ecf1d590d30bf -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22e5388370c209a6b0b73.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22e5388370c209a6b0b73.md index db04b60c757..19ebeec79bb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22e5388370c209a6b0b73.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22e5388370c209a6b0b73.md @@ -1,6 +1,6 @@ --- id: 65b22e5388370c209a6b0b73 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22f68d1e84923d3cf1e82.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22f68d1e84923d3cf1e82.md index e11d6a47b91..76e5ba49b6f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22f68d1e84923d3cf1e82.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b22f68d1e84923d3cf1e82.md @@ -1,6 +1,6 @@ --- id: 65b22f68d1e84923d3cf1e82 -title: Task 5 +title: Tarefa 5 challengeType: 22 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b2301790bb3c256a5787a3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b2301790bb3c256a5787a3.md index 49ad7ca22c7..0882542fac6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b2301790bb3c256a5787a3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b2301790bb3c256a5787a3.md @@ -1,6 +1,6 @@ --- id: 65b2301790bb3c256a5787a3 -title: Task 4 +title: Tarefa 4 challengeType: 19 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b2315a2cce3926f4719551.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b2315a2cce3926f4719551.md index de30973b902..f64680948c7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b2315a2cce3926f4719551.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b2315a2cce3926f4719551.md @@ -1,6 +1,6 @@ --- id: 65b2315a2cce3926f4719551 -title: Task 8 +title: Tarefa 8 challengeType: 22 dashedName: task-8 --- @@ -11,7 +11,7 @@ dashedName: task-8 The structure `in + someone's early/late + numbers` is used to talk about a person's age without specifying exactly how old they are. -Examples: +Exemplos: `My brother is in his early 20s.` This gives a general idea that he is at the beginning of his twenties without specifying the exact age. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25734252dad35f947f189.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25734252dad35f947f189.md index 3d6e54f9432..eff5a8fc045 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25734252dad35f947f189.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25734252dad35f947f189.md @@ -1,6 +1,6 @@ --- id: 65b25734252dad35f947f189 -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b258729e44fc38227665a0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b258729e44fc38227665a0.md index df86ecf104a..68ab33e1dc0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b258729e44fc38227665a0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b258729e44fc38227665a0.md @@ -1,6 +1,6 @@ --- id: 65b258729e44fc38227665a0 -title: Task 10 +title: Tarefa 10 challengeType: 22 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25a0c0e8c603c6576fe81.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25a0c0e8c603c6576fe81.md index 09fc1736ee0..ee2bf28072a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25a0c0e8c603c6576fe81.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25a0c0e8c603c6576fe81.md @@ -1,6 +1,6 @@ --- id: 65b25a0c0e8c603c6576fe81 -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25ab9be0c0d3ec4752839.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25ab9be0c0d3ec4752839.md index 7a8b5df5790..ce4afedd1e1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25ab9be0c0d3ec4752839.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25ab9be0c0d3ec4752839.md @@ -1,6 +1,6 @@ --- id: 65b25ab9be0c0d3ec4752839 -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- @@ -11,7 +11,7 @@ dashedName: task-12 When describing someone's appearance, you often use `with` followed by a feature. -Examples: +Exemplos: `with glasses` for someone who wears glasses diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25b541262654062a21e74.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25b541262654062a21e74.md index 94d8f7038fd..1d378bd2629 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25b541262654062a21e74.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25b541262654062a21e74.md @@ -1,6 +1,6 @@ --- id: 65b25b541262654062a21e74 -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25bcc98b00d41d06d2a2b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25bcc98b00d41d06d2a2b.md index b4a4250ac00..3a3b3441334 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25bcc98b00d41d06d2a2b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25bcc98b00d41d06d2a2b.md @@ -1,6 +1,6 @@ --- id: 65b25bcc98b00d41d06d2a2b -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25c9be41791441e86e045.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25c9be41791441e86e045.md index 3abe5f6419d..f726d3617a8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25c9be41791441e86e045.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25c9be41791441e86e045.md @@ -1,6 +1,6 @@ --- id: 65b25c9be41791441e86e045 -title: Task 15 +title: Tarefa 15 challengeType: 22 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25eacb57dd5493ebaf184.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25eacb57dd5493ebaf184.md index f2ad46889c1..42206ea57fb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25eacb57dd5493ebaf184.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25eacb57dd5493ebaf184.md @@ -1,6 +1,6 @@ --- id: 65b25eacb57dd5493ebaf184 -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25f2c3284994aa6632194.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25f2c3284994aa6632194.md index 7340a69f5de..8c7c70e9d3d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25f2c3284994aa6632194.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b25f2c3284994aa6632194.md @@ -1,6 +1,6 @@ --- id: 65b25f2c3284994aa6632194 -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- @@ -13,7 +13,7 @@ The structure `have/has been + verb-ing` is used in the *Present Perfect Continu It can be used with `for` followed by a period of time or `since` followed by a specific starting point in time to highlight the duration or how long the action happens. -Examples: +Exemplos: `We have been studying English for three years.` This means we started studying English three years ago and are still studying it now. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b26099dcd86f4e06d0fc21.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b26099dcd86f4e06d0fc21.md index 4e9a2d917a3..e4226439775 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b26099dcd86f4e06d0fc21.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b26099dcd86f4e06d0fc21.md @@ -1,6 +1,6 @@ --- id: 65b26099dcd86f4e06d0fc21 -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b261dae662a3512ed47826.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b261dae662a3512ed47826.md index 817d9245237..a9c2f07ec80 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b261dae662a3512ed47826.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b261dae662a3512ed47826.md @@ -1,6 +1,6 @@ --- id: 65b261dae662a3512ed47826 -title: Task 19 +title: Tarefa 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b622c659539b5863124b5a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b622c659539b5863124b5a.md index b50c062ce12..5a7cdda0de1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b622c659539b5863124b5a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b622c659539b5863124b5a.md @@ -1,6 +1,6 @@ --- id: 65b622c659539b5863124b5a -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b623813c9f7d5b26b3437f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b623813c9f7d5b26b3437f.md index 8aae0fdf7fb..77a4db1eca3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b623813c9f7d5b26b3437f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b623813c9f7d5b26b3437f.md @@ -1,6 +1,6 @@ --- id: 65b623813c9f7d5b26b3437f -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b625b0ce7ac75e1115c8cb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b625b0ce7ac75e1115c8cb.md index 547de74fec6..19103fcf6e9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b625b0ce7ac75e1115c8cb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b625b0ce7ac75e1115c8cb.md @@ -1,6 +1,6 @@ --- id: 65b625b0ce7ac75e1115c8cb -title: Task 22 +title: Tarefa 22 challengeType: 22 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6265db84a9d61cbc7a109.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6265db84a9d61cbc7a109.md index 2b81fe2995d..aebde410d5c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6265db84a9d61cbc7a109.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6265db84a9d61cbc7a109.md @@ -1,6 +1,6 @@ --- id: 65b6265db84a9d61cbc7a109 -title: Task 23 +title: Tarefa 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b629dbf8298669fb4c1572.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b629dbf8298669fb4c1572.md index d2b1a0ceecd..3e0074295ce 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b629dbf8298669fb4c1572.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b629dbf8298669fb4c1572.md @@ -1,6 +1,6 @@ --- id: 65b629dbf8298669fb4c1572 -title: Task 24 +title: Tarefa 24 challengeType: 22 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b62b2ca1c4a46c49ab0812.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b62b2ca1c4a46c49ab0812.md index 65beca348c5..f7516274078 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b62b2ca1c4a46c49ab0812.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b62b2ca1c4a46c49ab0812.md @@ -1,6 +1,6 @@ --- id: 65b62b2ca1c4a46c49ab0812 -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b655b819433f7c3e9df224.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b655b819433f7c3e9df224.md index ef86c1b6766..c882d57e25b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b655b819433f7c3e9df224.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b655b819433f7c3e9df224.md @@ -1,6 +1,6 @@ --- id: 65b655b819433f7c3e9df224 -title: Task 26 +title: Tarefa 26 challengeType: 22 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6569bfdca437e79a45159.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6569bfdca437e79a45159.md index c2dd5d7a9df..838bb72f484 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6569bfdca437e79a45159.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6569bfdca437e79a45159.md @@ -1,6 +1,6 @@ --- id: 65b6569bfdca437e79a45159 -title: Task 27 +title: Tarefa 27 challengeType: 22 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6575614ff477fd47746f4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6575614ff477fd47746f4.md index 949e1f8b71d..57514339e60 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6575614ff477fd47746f4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6575614ff477fd47746f4.md @@ -1,6 +1,6 @@ --- id: 65b6575614ff477fd47746f4 -title: Task 28 +title: Tarefa 28 challengeType: 19 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b657fea6ef4e81eb9a10fd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b657fea6ef4e81eb9a10fd.md index baa9c4053ce..c0d662ab208 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b657fea6ef4e81eb9a10fd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b657fea6ef4e81eb9a10fd.md @@ -1,6 +1,6 @@ --- id: 65b657fea6ef4e81eb9a10fd -title: Task 29 +title: Tarefa 29 challengeType: 22 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6586c618400831eff6d17.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6586c618400831eff6d17.md index 05d8c3fc731..bf0febede39 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6586c618400831eff6d17.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b6586c618400831eff6d17.md @@ -1,6 +1,6 @@ --- id: 65b6586c618400831eff6d17 -title: Task 30 +title: Tarefa 30 challengeType: 19 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b78bde6c6910b32eef74ba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b78bde6c6910b32eef74ba.md index bea3452df60..29324cf8b4c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b78bde6c6910b32eef74ba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b78bde6c6910b32eef74ba.md @@ -1,6 +1,6 @@ --- id: 65b78bde6c6910b32eef74ba -title: Task 31 +title: Tarefa 31 challengeType: 22 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b78da7683e2cb7061d0021.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b78da7683e2cb7061d0021.md index a90e1be93d2..9615ed9f023 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b78da7683e2cb7061d0021.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b78da7683e2cb7061d0021.md @@ -1,6 +1,6 @@ --- id: 65b78da7683e2cb7061d0021 -title: Task 32 +title: Tarefa 32 challengeType: 19 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5cebba7a44042a1815053.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5cebba7a44042a1815053.md index f4cd4f8256c..8a0fc7717a3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5cebba7a44042a1815053.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5cebba7a44042a1815053.md @@ -7,11 +7,11 @@ dashedName: dialogue-2-talking-about-anna # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5d17a45be4e4d56be704a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5d17a45be4e4d56be704a.md index 8a9c66544a9..b86d2a952c2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5d17a45be4e4d56be704a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5d17a45be4e4d56be704a.md @@ -1,6 +1,6 @@ --- id: 65d5d17a45be4e4d56be704a -title: Task 33 +title: Tarefa 33 challengeType: 22 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5d1bdbd0a7f4e3edb6c8e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5d1bdbd0a7f4e3edb6c8e.md index 7551f013b19..571fd46c9f0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5d1bdbd0a7f4e3edb6c8e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5d1bdbd0a7f4e3edb6c8e.md @@ -1,6 +1,6 @@ --- id: 65d5d1bdbd0a7f4e3edb6c8e -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5fb1e575bfe649f5cea4b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5fb1e575bfe649f5cea4b.md index 7f2a7908462..c0c840c97fd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5fb1e575bfe649f5cea4b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5fb1e575bfe649f5cea4b.md @@ -1,6 +1,6 @@ --- id: 65d5fb1e575bfe649f5cea4b -title: Task 35 +title: Tarefa 35 challengeType: 19 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5feaac55f2d673480abe1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5feaac55f2d673480abe1.md index ae4be30d919..98696b5b524 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5feaac55f2d673480abe1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d5feaac55f2d673480abe1.md @@ -1,6 +1,6 @@ --- id: 65d5feaac55f2d673480abe1 -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60150d4ac7c73895342cc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60150d4ac7c73895342cc.md index 870c17c4aae..cd115e16ff0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60150d4ac7c73895342cc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60150d4ac7c73895342cc.md @@ -1,6 +1,6 @@ --- id: 65d60150d4ac7c73895342cc -title: Task 37 +title: Tarefa 37 challengeType: 19 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60402f5661e79dfddab63.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60402f5661e79dfddab63.md index d1e69bece96..86e8740cf10 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60402f5661e79dfddab63.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60402f5661e79dfddab63.md @@ -1,6 +1,6 @@ --- id: 65d60402f5661e79dfddab63 -title: Task 38 +title: Tarefa 38 challengeType: 22 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60609e931277ebddf1dd8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60609e931277ebddf1dd8.md index 895b86792cf..fd30971c6c4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60609e931277ebddf1dd8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d60609e931277ebddf1dd8.md @@ -1,6 +1,6 @@ --- id: 65d60609e931277ebddf1dd8 -title: Task 39 +title: Tarefa 39 challengeType: 22 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6099b91bfe381c68a12f8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6099b91bfe381c68a12f8.md index 1a1aea5f482..bc8dbcd3017 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6099b91bfe381c68a12f8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6099b91bfe381c68a12f8.md @@ -1,6 +1,6 @@ --- id: 65d6099b91bfe381c68a12f8 -title: Task 40 +title: Tarefa 40 challengeType: 22 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6b7cfc3544c15a83b2008.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6b7cfc3544c15a83b2008.md index 1db2c3ae6a6..77147999062 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6b7cfc3544c15a83b2008.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6b7cfc3544c15a83b2008.md @@ -1,6 +1,6 @@ --- id: 65d6b7cfc3544c15a83b2008 -title: Task 41 +title: Tarefa 41 challengeType: 19 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bc21bbb3fb20d47cd7ed.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bc21bbb3fb20d47cd7ed.md index c4d783bcbe7..e2b5a55f2ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bc21bbb3fb20d47cd7ed.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bc21bbb3fb20d47cd7ed.md @@ -1,6 +1,6 @@ --- id: 65d6bc21bbb3fb20d47cd7ed -title: Task 42 +title: Tarefa 42 challengeType: 22 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bd19de6bad235879c032.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bd19de6bad235879c032.md index fb02abffc1a..db4ff030e92 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bd19de6bad235879c032.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bd19de6bad235879c032.md @@ -1,6 +1,6 @@ --- id: 65d6bd19de6bad235879c032 -title: Task 43 +title: Tarefa 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bfc0ef75202990f3c838.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bfc0ef75202990f3c838.md index 5c5c0d9a760..ab93d1965a1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bfc0ef75202990f3c838.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6bfc0ef75202990f3c838.md @@ -1,6 +1,6 @@ --- id: 65d6bfc0ef75202990f3c838 -title: Task 44 +title: Tarefa 44 challengeType: 22 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c0b53262202bf8813f73.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c0b53262202bf8813f73.md index f0765ef4bcb..e3d24665d9a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c0b53262202bf8813f73.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c0b53262202bf8813f73.md @@ -1,6 +1,6 @@ --- id: 65d6c0b53262202bf8813f73 -title: Task 45 +title: Tarefa 45 challengeType: 22 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c19c1a1dc52e536a8e21.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c19c1a1dc52e536a8e21.md index 2bb78a780a6..f6d17b8e695 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c19c1a1dc52e536a8e21.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c19c1a1dc52e536a8e21.md @@ -1,6 +1,6 @@ --- id: 65d6c19c1a1dc52e536a8e21 -title: Task 46 +title: Tarefa 46 challengeType: 19 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c390f03b85333445b5e4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c390f03b85333445b5e4.md index 6f3f38107a3..c5cac92de05 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c390f03b85333445b5e4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c390f03b85333445b5e4.md @@ -1,6 +1,6 @@ --- id: 65d6c390f03b85333445b5e4 -title: Task 47 +title: Tarefa 47 challengeType: 22 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c7f99ec5d13d543dccf4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c7f99ec5d13d543dccf4.md index 999eb72ffd5..234c76618d9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c7f99ec5d13d543dccf4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c7f99ec5d13d543dccf4.md @@ -1,6 +1,6 @@ --- id: 65d6c7f99ec5d13d543dccf4 -title: Task 48 +title: Tarefa 48 challengeType: 22 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c8c2c21ad83f837b4bb9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c8c2c21ad83f837b4bb9.md index 827964f1129..11520690a06 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c8c2c21ad83f837b4bb9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6c8c2c21ad83f837b4bb9.md @@ -1,6 +1,6 @@ --- id: 65d6c8c2c21ad83f837b4bb9 -title: Task 49 +title: Tarefa 49 challengeType: 19 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6ca37133db041a059b352.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6ca37133db041a059b352.md index f97f3434b96..e0818f8e9eb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6ca37133db041a059b352.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6ca37133db041a059b352.md @@ -1,6 +1,6 @@ --- id: 65d6ca37133db041a059b352 -title: Task 50 +title: Tarefa 50 challengeType: 19 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cb8800b1274686877c25.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cb8800b1274686877c25.md index 849189177dd..45d7103f835 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cb8800b1274686877c25.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cb8800b1274686877c25.md @@ -1,6 +1,6 @@ --- id: 65d6cb8800b1274686877c25 -title: Task 51 +title: Tarefa 51 challengeType: 22 dashedName: task-51 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cc2551fe584833cd6cda.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cc2551fe584833cd6cda.md index 15e39b71fe6..dd0dc775bf1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cc2551fe584833cd6cda.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cc2551fe584833cd6cda.md @@ -1,6 +1,6 @@ --- id: 65d6cc2551fe584833cd6cda -title: Task 52 +title: Tarefa 52 challengeType: 19 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cd757478424b84d7f445.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cd757478424b84d7f445.md index 4f44e5fbd87..fb201e940f7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cd757478424b84d7f445.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6cd757478424b84d7f445.md @@ -1,6 +1,6 @@ --- id: 65d6cd757478424b84d7f445 -title: Task 53 +title: Tarefa 53 challengeType: 22 dashedName: task-53 --- @@ -13,7 +13,7 @@ dashedName: task-53 `Supportive` is an adjective which describes someone who gives help and encouragement. It comes from the verb `support`, which means to give help or assistance to someone or something. -Examples: +Exemplos: `My coach is very supportive during training` means the coach helps and encourages the team a lot. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dadcc5e50f5d3d3c8e95.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dadcc5e50f5d3d3c8e95.md index 5f6e401d750..bd9887083de 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dadcc5e50f5d3d3c8e95.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dadcc5e50f5d3d3c8e95.md @@ -1,6 +1,6 @@ --- id: 65d6dadcc5e50f5d3d3c8e95 -title: Task 54 +title: Tarefa 54 challengeType: 19 dashedName: task-54 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dc5686b49d61612472e0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dc5686b49d61612472e0.md index 82b4ca9715f..e33286e629f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dc5686b49d61612472e0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dc5686b49d61612472e0.md @@ -1,6 +1,6 @@ --- id: 65d6dc5686b49d61612472e0 -title: Task 55 +title: Tarefa 55 challengeType: 22 dashedName: task-55 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dd0d7fc3c563482b8ad6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dd0d7fc3c563482b8ad6.md index b94c5eff9d1..8f7af714de9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dd0d7fc3c563482b8ad6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6dd0d7fc3c563482b8ad6.md @@ -1,6 +1,6 @@ --- id: 65d6dd0d7fc3c563482b8ad6 -title: Task 56 +title: Tarefa 56 challengeType: 19 dashedName: task-56 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6e2c17bb85b727ddf51d6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6e2c17bb85b727ddf51d6.md index 1486ad56dda..a8b83a21d11 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6e2c17bb85b727ddf51d6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d6e2c17bb85b727ddf51d6.md @@ -7,11 +7,11 @@ dashedName: dialogue-3-talking-about-jeff # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d7480fba8a2b88f5499094.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d7480fba8a2b88f5499094.md index bda80874a73..bd0bc48f61d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d7480fba8a2b88f5499094.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d7480fba8a2b88f5499094.md @@ -1,6 +1,6 @@ --- id: 65d7480fba8a2b88f5499094 -title: Task 57 +title: Tarefa 57 challengeType: 22 dashedName: task-57 --- @@ -13,7 +13,7 @@ The word `must` is used to express a strong necessity or obligation. It is follo It's similar to `have to`, but `must` is often used when the obligation comes from the speaker or is internal, while `have to` is often used for external obligations or rules. -Examples: +Exemplos: `You must study for the test` means the speaker thinks it's very important for you to study for the test. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74ca5293a7b9397dec0e6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74ca5293a7b9397dec0e6.md index be2008ddcb9..7ab6f58c525 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74ca5293a7b9397dec0e6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74ca5293a7b9397dec0e6.md @@ -1,6 +1,6 @@ --- id: 65d74ca5293a7b9397dec0e6 -title: Task 58 +title: Tarefa 58 challengeType: 19 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74e055819ee970713e509.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74e055819ee970713e509.md index d72ecedc897..cde3ff54556 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74e055819ee970713e509.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74e055819ee970713e509.md @@ -1,6 +1,6 @@ --- id: 65d74e055819ee970713e509 -title: Task 74 +title: Tarefa 74 challengeType: 22 dashedName: task-74 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74fe1b1db8c9b43fb93fd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74fe1b1db8c9b43fb93fd.md index 8d266b1aabc..96068e52137 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74fe1b1db8c9b43fb93fd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d74fe1b1db8c9b43fb93fd.md @@ -1,6 +1,6 @@ --- id: 65d74fe1b1db8c9b43fb93fd -title: Task 75 +title: Tarefa 75 challengeType: 19 dashedName: task-75 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d750f42fb8c69d48edb565.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d750f42fb8c69d48edb565.md index ac2b2a23a8d..d1560743246 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d750f42fb8c69d48edb565.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d750f42fb8c69d48edb565.md @@ -1,6 +1,6 @@ --- id: 65d750f42fb8c69d48edb565 -title: Task 59 +title: Tarefa 59 challengeType: 22 dashedName: task-59 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d75185d536899fd3c01977.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d75185d536899fd3c01977.md index 8ad731399ae..4357cabbe3a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d75185d536899fd3c01977.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d75185d536899fd3c01977.md @@ -1,6 +1,6 @@ --- id: 65d75185d536899fd3c01977 -title: Task 60 +title: Tarefa 60 challengeType: 19 dashedName: task-60 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d752c6240228a36a5a3ac3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d752c6240228a36a5a3ac3.md index d850a840979..e684dbeeba6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d752c6240228a36a5a3ac3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d752c6240228a36a5a3ac3.md @@ -1,6 +1,6 @@ --- id: 65d752c6240228a36a5a3ac3 -title: Task 61 +title: Tarefa 61 challengeType: 22 dashedName: task-61 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d862dca01bd8e8a6f7561b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d862dca01bd8e8a6f7561b.md index c0e2b58ff84..c832f33b1d1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d862dca01bd8e8a6f7561b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d862dca01bd8e8a6f7561b.md @@ -1,6 +1,6 @@ --- id: 65d862dca01bd8e8a6f7561b -title: Task 62 +title: Tarefa 62 challengeType: 22 dashedName: task-62 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d863be0ea26dea821fb459.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d863be0ea26dea821fb459.md index cc7b0013ddd..ddbff0e0778 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d863be0ea26dea821fb459.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d863be0ea26dea821fb459.md @@ -1,6 +1,6 @@ --- id: 65d863be0ea26dea821fb459 -title: Task 63 +title: Tarefa 63 challengeType: 19 dashedName: task-63 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86638218150ecf514c478.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86638218150ecf514c478.md index 85ba77c4b8f..bed1bdcfbc3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86638218150ecf514c478.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86638218150ecf514c478.md @@ -1,6 +1,6 @@ --- id: 65d86638218150ecf514c478 -title: Task 64 +title: Tarefa 64 challengeType: 22 dashedName: task-64 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d867969a26ebf43e31297d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d867969a26ebf43e31297d.md index 6b1409a2536..323ada67bda 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d867969a26ebf43e31297d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d867969a26ebf43e31297d.md @@ -1,6 +1,6 @@ --- id: 65d867969a26ebf43e31297d -title: Task 65 +title: Tarefa 65 challengeType: 22 dashedName: task-65 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d868a1bdc45bf6ec63b5bb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d868a1bdc45bf6ec63b5bb.md index 567da58aabc..1b3c7597c14 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d868a1bdc45bf6ec63b5bb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d868a1bdc45bf6ec63b5bb.md @@ -1,6 +1,6 @@ --- id: 65d868a1bdc45bf6ec63b5bb -title: Task 66 +title: Tarefa 66 challengeType: 22 dashedName: task-66 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d869b6f586e1f9a02aa19b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d869b6f586e1f9a02aa19b.md index 4591702d204..85857f52109 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d869b6f586e1f9a02aa19b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d869b6f586e1f9a02aa19b.md @@ -1,6 +1,6 @@ --- id: 65d869b6f586e1f9a02aa19b -title: Task 67 +title: Tarefa 67 challengeType: 19 dashedName: task-67 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86af6cdfed1fcab11abbe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86af6cdfed1fcab11abbe.md index adce9442394..eaadc15c9d6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86af6cdfed1fcab11abbe.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86af6cdfed1fcab11abbe.md @@ -1,6 +1,6 @@ --- id: 65d86af6cdfed1fcab11abbe -title: Task 68 +title: Tarefa 68 challengeType: 22 dashedName: task-68 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86c1b4c4fd6fef305999b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86c1b4c4fd6fef305999b.md index dfab60d9312..2b74e3d0ada 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86c1b4c4fd6fef305999b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86c1b4c4fd6fef305999b.md @@ -1,6 +1,6 @@ --- id: 65d86c1b4c4fd6fef305999b -title: Task 69 +title: Tarefa 69 challengeType: 19 dashedName: task-69 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86d187f5ec600eb58fb9e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86d187f5ec600eb58fb9e.md index 544406952e9..0a304ecb3ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86d187f5ec600eb58fb9e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86d187f5ec600eb58fb9e.md @@ -1,6 +1,6 @@ --- id: 65d86d187f5ec600eb58fb9e -title: Task 70 +title: Tarefa 70 challengeType: 22 dashedName: task-70 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86e08994c4a0436d92766.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86e08994c4a0436d92766.md index d55c2917d38..76a2ef3a7e2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86e08994c4a0436d92766.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86e08994c4a0436d92766.md @@ -1,6 +1,6 @@ --- id: 65d86e08994c4a0436d92766 -title: Task 71 +title: Tarefa 71 challengeType: 19 dashedName: task-71 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86f2835110e0770f5333f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86f2835110e0770f5333f.md index 293e190419e..e6f3f072fa1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86f2835110e0770f5333f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d86f2835110e0770f5333f.md @@ -1,6 +1,6 @@ --- id: 65d86f2835110e0770f5333f -title: Task 72 +title: Tarefa 72 challengeType: 22 dashedName: task-72 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8713fd64b650c269676cd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8713fd64b650c269676cd.md index 1817e997cd7..068b6d4f630 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8713fd64b650c269676cd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8713fd64b650c269676cd.md @@ -1,6 +1,6 @@ --- id: 65d8713fd64b650c269676cd -title: Task 76 +title: Tarefa 76 challengeType: 22 dashedName: task-76 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d87217064c730ef7bc63fe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d87217064c730ef7bc63fe.md index 6c067942fe4..6815f3e9f13 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d87217064c730ef7bc63fe.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d87217064c730ef7bc63fe.md @@ -1,6 +1,6 @@ --- id: 65d87217064c730ef7bc63fe -title: Task 73 +title: Tarefa 73 challengeType: 19 dashedName: task-73 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d881130285e11fd1a6f790.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d881130285e11fd1a6f790.md index 4a27c17df46..bebf902b4f7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d881130285e11fd1a6f790.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d881130285e11fd1a6f790.md @@ -1,6 +1,6 @@ --- id: 65d881130285e11fd1a6f790 -title: Task 77 +title: Tarefa 77 challengeType: 22 dashedName: task-77 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d88b76573df039d43f29bc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d88b76573df039d43f29bc.md index 87424e7d355..784dbe24227 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d88b76573df039d43f29bc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d88b76573df039d43f29bc.md @@ -7,11 +7,11 @@ dashedName: dialogue-4-sophie-asks-bob-about-his-responsibilities # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d890f37666763b1c08e284.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d890f37666763b1c08e284.md index fad8dc9cc57..fad69998e66 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d890f37666763b1c08e284.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d890f37666763b1c08e284.md @@ -1,6 +1,6 @@ --- id: 65d890f37666763b1c08e284 -title: Task 79 +title: Tarefa 79 challengeType: 22 dashedName: task-79 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d892ad7262d64a5db56906.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d892ad7262d64a5db56906.md index cbb9159e176..48123e66aa6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d892ad7262d64a5db56906.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d892ad7262d64a5db56906.md @@ -1,6 +1,6 @@ --- id: 65d892ad7262d64a5db56906 -title: Task 78 +title: Tarefa 78 challengeType: 19 dashedName: task-78 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8938e6254064bd4cd63fa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8938e6254064bd4cd63fa.md index 6a998bc96da..f5ee5d1b921 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8938e6254064bd4cd63fa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8938e6254064bd4cd63fa.md @@ -1,6 +1,6 @@ --- id: 65d8938e6254064bd4cd63fa -title: Task 80 +title: Tarefa 80 challengeType: 22 dashedName: task-80 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8947a2588474f90595bcf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8947a2588474f90595bcf.md index 6caadc8f824..b59377e273e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8947a2588474f90595bcf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d8947a2588474f90595bcf.md @@ -1,6 +1,6 @@ --- id: 65d8947a2588474f90595bcf -title: Task 81 +title: Tarefa 81 challengeType: 19 dashedName: task-81 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d89562dff69551e7683df3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d89562dff69551e7683df3.md index f255ef6341a..c81d61ad0b9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d89562dff69551e7683df3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d89562dff69551e7683df3.md @@ -1,6 +1,6 @@ --- id: 65d89562dff69551e7683df3 -title: Task 82 +title: Tarefa 82 challengeType: 22 dashedName: task-82 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d897caddd4d657e3862b36.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d897caddd4d657e3862b36.md index b2a8d4d43cf..879a6af47cc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d897caddd4d657e3862b36.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d897caddd4d657e3862b36.md @@ -1,6 +1,6 @@ --- id: 65d897caddd4d657e3862b36 -title: Task 83 +title: Tarefa 83 challengeType: 19 dashedName: task-83 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d950cef8533a636d6bd51e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d950cef8533a636d6bd51e.md index 28af7570aeb..ba0283218d5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d950cef8533a636d6bd51e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d950cef8533a636d6bd51e.md @@ -1,6 +1,6 @@ --- id: 65d950cef8533a636d6bd51e -title: Task 84 +title: Tarefa 84 challengeType: 22 dashedName: task-84 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d957af14072272d091fc45.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d957af14072272d091fc45.md index e7217083f38..7d98e7ae447 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d957af14072272d091fc45.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d957af14072272d091fc45.md @@ -1,6 +1,6 @@ --- id: 65d957af14072272d091fc45 -title: Task 85 +title: Tarefa 85 challengeType: 22 dashedName: task-85 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d959d3478ceb77dc1b28a3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d959d3478ceb77dc1b28a3.md index a61ed802b8a..9c649ec24bc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d959d3478ceb77dc1b28a3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d959d3478ceb77dc1b28a3.md @@ -1,6 +1,6 @@ --- id: 65d959d3478ceb77dc1b28a3 -title: Task 86 +title: Tarefa 86 challengeType: 22 dashedName: task-86 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d95c504f0bce7e8f6a30ea.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d95c504f0bce7e8f6a30ea.md index 3460c321fc5..f91134f1d01 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d95c504f0bce7e8f6a30ea.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d95c504f0bce7e8f6a30ea.md @@ -1,6 +1,6 @@ --- id: 65d95c504f0bce7e8f6a30ea -title: Task 87 +title: Tarefa 87 challengeType: 19 dashedName: task-87 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9633ff2cc710bd3e18c03.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9633ff2cc710bd3e18c03.md index 4c085468d24..23a5745879e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9633ff2cc710bd3e18c03.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9633ff2cc710bd3e18c03.md @@ -7,11 +7,11 @@ dashedName: dialogue-5-brian-and-sophie-talk-about-responsibilities # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista o vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9646cf07b7b0e74fbfe6f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9646cf07b7b0e74fbfe6f.md index 1145507101f..d06267a9c02 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9646cf07b7b0e74fbfe6f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9646cf07b7b0e74fbfe6f.md @@ -1,6 +1,6 @@ --- id: 65d9646cf07b7b0e74fbfe6f -title: Task 88 +title: Tarefa 88 challengeType: 22 dashedName: task-88 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9664a976fb114cf9f1928.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9664a976fb114cf9f1928.md index 9833aea4b80..b1771892a02 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9664a976fb114cf9f1928.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d9664a976fb114cf9f1928.md @@ -1,6 +1,6 @@ --- id: 65d9664a976fb114cf9f1928 -title: Task 89 +title: Tarefa 89 challengeType: 19 dashedName: task-89 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d967ec3ad9fb162e3b6d67.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d967ec3ad9fb162e3b6d67.md index 0488666f8f3..9c5aa5c1b7d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d967ec3ad9fb162e3b6d67.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d967ec3ad9fb162e3b6d67.md @@ -1,6 +1,6 @@ --- id: 65d967ec3ad9fb162e3b6d67 -title: Task 90 +title: Tarefa 90 challengeType: 22 dashedName: task-90 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d96b62de43441ee5d01b88.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d96b62de43441ee5d01b88.md index 9af6f54fa40..0429366570b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d96b62de43441ee5d01b88.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65d96b62de43441ee5d01b88.md @@ -1,6 +1,6 @@ --- id: 65d96b62de43441ee5d01b88 -title: Task 91 +title: Tarefa 91 challengeType: 19 dashedName: task-91 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa3bcb0ef255d206f91b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa3bcb0ef255d206f91b8.md index fdfde86048d..7f6ce25eec8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa3bcb0ef255d206f91b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa3bcb0ef255d206f91b8.md @@ -1,6 +1,6 @@ --- id: 65daa3bcb0ef255d206f91b8 -title: Task 92 +title: Tarefa 92 challengeType: 22 dashedName: task-92 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa68d2bec806393956a94.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa68d2bec806393956a94.md index 75bb3b4110c..9a854803d2a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa68d2bec806393956a94.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa68d2bec806393956a94.md @@ -1,6 +1,6 @@ --- id: 65daa68d2bec806393956a94 -title: Task 93 +title: Tarefa 93 challengeType: 22 dashedName: task-93 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa8143ae77767ad914ba4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa8143ae77767ad914ba4.md index 8c649fe2f8f..561c76b6fe9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa8143ae77767ad914ba4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa8143ae77767ad914ba4.md @@ -1,6 +1,6 @@ --- id: 65daa8143ae77767ad914ba4 -title: Task 94 +title: Tarefa 94 challengeType: 22 dashedName: task-94 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa8cce1b9206995e4aec3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa8cce1b9206995e4aec3.md index 5f3e8d26cf4..7dedbe606e9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa8cce1b9206995e4aec3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa8cce1b9206995e4aec3.md @@ -1,6 +1,6 @@ --- id: 65daa8cce1b9206995e4aec3 -title: Task 95 +title: Tarefa 95 challengeType: 22 dashedName: task-95 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa9fa35b2dd6c6e29636d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa9fa35b2dd6c6e29636d.md index 09d4ae3b82d..12d94b144f9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa9fa35b2dd6c6e29636d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daa9fa35b2dd6c6e29636d.md @@ -1,6 +1,6 @@ --- id: 65daa9fa35b2dd6c6e29636d -title: Task 96 +title: Tarefa 96 challengeType: 19 dashedName: task-96 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daab9b713d3e6e6272c8bf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daab9b713d3e6e6272c8bf.md index 008b39e6c31..6ddf5887318 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daab9b713d3e6e6272c8bf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65daab9b713d3e6e6272c8bf.md @@ -1,6 +1,6 @@ --- id: 65daab9b713d3e6e6272c8bf -title: Task 97 +title: Tarefa 97 challengeType: 22 dashedName: task-97 --- @@ -13,7 +13,7 @@ The verb `jog` means to run at a slow, steady pace. The word `start` can be foll Adverbs describe how actions are done. They are often formed by adding `-ly` to adjectives. For example, `regular` is an adjective that means usual or done often. When you add `-ly`, it becomes `regularly`, an adverb that means doing something in a usual or frequent manner. -Examples: +Exemplos: `He has a regular exercise schedule.`, or `He exercises regularly.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab0c26091a87db218685a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab0c26091a87db218685a.md index 850d6a8da16..23381d4c6b6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab0c26091a87db218685a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab0c26091a87db218685a.md @@ -1,6 +1,6 @@ --- id: 65dab0c26091a87db218685a -title: Task 98 +title: Tarefa 98 challengeType: 22 dashedName: task-98 --- @@ -13,7 +13,7 @@ The phrase `stay fit` means to keep in good health, especially through physical When `stay` is followed by an adjective, it describes continuing to be in a certain state, condition, or situation. -Examples: +Exemplos: `Stay calm` means to continue being calm without becoming upset. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab1186529467ee5e463a7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab1186529467ee5e463a7.md index 37332d1547a..2ccf83a37d1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab1186529467ee5e463a7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab1186529467ee5e463a7.md @@ -1,6 +1,6 @@ --- id: 65dab1186529467ee5e463a7 -title: Task 99 +title: Tarefa 99 challengeType: 19 dashedName: task-99 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab20c41a21a817084ecdb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab20c41a21a817084ecdb.md index 92c22d225bf..207472637ff 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab20c41a21a817084ecdb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab20c41a21a817084ecdb.md @@ -1,6 +1,6 @@ --- id: 65dab20c41a21a817084ecdb -title: Task 100 +title: Tarefa 100 challengeType: 22 dashedName: task-100 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab50a398b0f851f7a1c9b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab50a398b0f851f7a1c9b.md index ffbc2e5556b..d2093537a47 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab50a398b0f851f7a1c9b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab50a398b0f851f7a1c9b.md @@ -1,6 +1,6 @@ --- id: 65dab50a398b0f851f7a1c9b -title: Task 101 +title: Tarefa 101 challengeType: 19 dashedName: task-101 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab742fb5c1c8d81bb063b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab742fb5c1c8d81bb063b.md index 2fe48333882..0d246ca5fc4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab742fb5c1c8d81bb063b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dab742fb5c1c8d81bb063b.md @@ -1,6 +1,6 @@ --- id: 65dab742fb5c1c8d81bb063b -title: Task 102 +title: Tarefa 102 challengeType: 22 dashedName: task-102 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dabddd6b64319c42b36aa2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dabddd6b64319c42b36aa2.md index 26c1b1e3b99..ae99dd963f5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dabddd6b64319c42b36aa2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dabddd6b64319c42b36aa2.md @@ -1,6 +1,6 @@ --- id: 65dabddd6b64319c42b36aa2 -title: Task 103 +title: Tarefa 103 challengeType: 19 dashedName: task-103 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dabf5eb13aae9ff91c40a2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dabf5eb13aae9ff91c40a2.md index 38a4cb56ce0..91f78856d16 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dabf5eb13aae9ff91c40a2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dabf5eb13aae9ff91c40a2.md @@ -1,6 +1,6 @@ --- id: 65dabf5eb13aae9ff91c40a2 -title: Task 104 +title: Tarefa 104 challengeType: 22 dashedName: task-104 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dacf1ea93489b07bbe48d8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dacf1ea93489b07bbe48d8.md index 5f182383290..c82b3b09c0e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dacf1ea93489b07bbe48d8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dacf1ea93489b07bbe48d8.md @@ -1,6 +1,6 @@ --- id: 65dacf1ea93489b07bbe48d8 -title: Task 105 +title: Tarefa 105 challengeType: 22 dashedName: task-105 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dad153fd675cb51e8423b0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dad153fd675cb51e8423b0.md index 8ca95177926..3a84367ead9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dad153fd675cb51e8423b0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65dad153fd675cb51e8423b0.md @@ -1,6 +1,6 @@ --- id: 65dad153fd675cb51e8423b0 -title: Task 106 +title: Tarefa 106 challengeType: 19 dashedName: task-106 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index 9698e50fc6a..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635c3e30e02d224d4450eac.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635c3e30e02d224d4450eac.md index 55b2ec1b9a5..f9fffd9f78c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635c3e30e02d224d4450eac.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635c3e30e02d224d4450eac.md @@ -9,6 +9,6 @@ dashedName: dialogue-1-discussing-low-code-development Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635f9203e0ed42948db1e4c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635f9203e0ed42948db1e4c.md index 5f3bd47adec..e11410c08c8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635f9203e0ed42948db1e4c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635f9203e0ed42948db1e4c.md @@ -1,6 +1,6 @@ --- id: 6635f9203e0ed42948db1e4c -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635f9c305ad6d2a08cb6ad4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635f9c305ad6d2a08cb6ad4.md index 95615cbfa53..4a5c09e0cf1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635f9c305ad6d2a08cb6ad4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635f9c305ad6d2a08cb6ad4.md @@ -1,6 +1,6 @@ --- id: 6635f9c305ad6d2a08cb6ad4 -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635fc67f6d0f82ad629e71d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635fc67f6d0f82ad629e71d.md index 2f7f4822dbc..e9029652ecd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635fc67f6d0f82ad629e71d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635fc67f6d0f82ad629e71d.md @@ -1,6 +1,6 @@ --- id: 6635fc67f6d0f82ad629e71d -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635fdc8fdd98f2b56c3bcf8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635fdc8fdd98f2b56c3bcf8.md index 00d4c06f905..62d7ebd8e87 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635fdc8fdd98f2b56c3bcf8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6635fdc8fdd98f2b56c3bcf8.md @@ -1,6 +1,6 @@ --- id: 6635fdc8fdd98f2b56c3bcf8 -title: Task 4 +title: Tarefa 4 challengeType: 19 dashedName: task-4 --- @@ -9,7 +9,7 @@ dashedName: task-4 Expressions like `do you know`, `could you tell me`, and `do you have any idea` are commonly used in English to inquire or confirm information gently. You use them followed by a question and the structure of the question changes to an affirmative sentence. -Examples: +Exemplos: Original question `What time is it?` changed to `Do you know what time it is?` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663601a777cfc92cbaf8cb7c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663601a777cfc92cbaf8cb7c.md index c00183dc13b..304a123ea1d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663601a777cfc92cbaf8cb7c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663601a777cfc92cbaf8cb7c.md @@ -1,6 +1,6 @@ --- id: 663601a777cfc92cbaf8cb7c -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360374d980d82d3cccddf7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360374d980d82d3cccddf7.md index 193671e85c3..161e2b5e86c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360374d980d82d3cccddf7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360374d980d82d3cccddf7.md @@ -1,6 +1,6 @@ --- id: 66360374d980d82d3cccddf7 -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663604ab610a932dc9882194.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663604ab610a932dc9882194.md index 91a8e639e20..7ac74d11faf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663604ab610a932dc9882194.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663604ab610a932dc9882194.md @@ -1,6 +1,6 @@ --- id: 663604ab610a932dc9882194 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663606cc695a992e81ef521d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663606cc695a992e81ef521d.md index 7a797ceb9d9..982ab04c768 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663606cc695a992e81ef521d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663606cc695a992e81ef521d.md @@ -1,6 +1,6 @@ --- id: 663606cc695a992e81ef521d -title: Task 8 +title: Tarefa 8 challengeType: 22 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663608aa63d5b72f475b7718.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663608aa63d5b72f475b7718.md index 022b9a97fe9..d90cbf4f62b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663608aa63d5b72f475b7718.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663608aa63d5b72f475b7718.md @@ -1,6 +1,6 @@ --- id: 663608aa63d5b72f475b7718 -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663609d95c99422fce1d3824.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663609d95c99422fce1d3824.md index 1c243afd0d8..5044e387687 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663609d95c99422fce1d3824.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663609d95c99422fce1d3824.md @@ -1,6 +1,6 @@ --- id: 663609d95c99422fce1d3824 -title: Task 10 +title: Tarefa 10 challengeType: 22 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360b4ec92e49305fec41ce.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360b4ec92e49305fec41ce.md index 284029e2260..e20cec6fd99 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360b4ec92e49305fec41ce.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360b4ec92e49305fec41ce.md @@ -1,6 +1,6 @@ --- id: 66360b4ec92e49305fec41ce -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360c141117e030da0c0cb3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360c141117e030da0c0cb3.md index 85c880c83b2..67e30df157b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360c141117e030da0c0cb3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66360c141117e030da0c0cb3.md @@ -1,6 +1,6 @@ --- id: 66360c141117e030da0c0cb3 -title: Task 12 +title: Tarefa 12 challengeType: 22 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636159376b91532f4f8e49b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636159376b91532f4f8e49b.md index 6f8d4cf3833..ff33c3ffab0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636159376b91532f4f8e49b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636159376b91532f4f8e49b.md @@ -1,6 +1,6 @@ --- id: 6636159376b91532f4f8e49b -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361836f505f333d344da43.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361836f505f333d344da43.md index b56faeff4cf..6a6d1d60fc4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361836f505f333d344da43.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361836f505f333d344da43.md @@ -1,6 +1,6 @@ --- id: 66361836f505f333d344da43 -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361ad945006834b7eb7ccd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361ad945006834b7eb7ccd.md index 1fb1f3d68ed..ab5d1152ccb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361ad945006834b7eb7ccd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361ad945006834b7eb7ccd.md @@ -1,6 +1,6 @@ --- id: 66361ad945006834b7eb7ccd -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361c43829cea3535e7a49a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361c43829cea3535e7a49a.md index ffc003ea5d9..77a2e5271f3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361c43829cea3535e7a49a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66361c43829cea3535e7a49a.md @@ -1,6 +1,6 @@ --- id: 66361c43829cea3535e7a49a -title: Task 16 +title: Tarefa 16 challengeType: 22 dashedName: task-16 --- @@ -14,7 +14,7 @@ Sarah: I think so. Why don't we check out some of these tools to see if they can The phrase `why don't` is often used to make a suggestion or offer. It is followed by a subject (like `we`, `you`, or `they`) and a base verb. The structure is `why don't + subject + base verb`. It's a polite way of suggesting an action or asking someone to do something. -Examples: +Exemplos: `Why don't we go to the cinema tonight?` The speaker suggests going to the cinema. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663620974eb4a0369d76b6b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663620974eb4a0369d76b6b8.md index f7dd6fa54d1..f99b1244553 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663620974eb4a0369d76b6b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663620974eb4a0369d76b6b8.md @@ -1,6 +1,6 @@ --- id: 663620974eb4a0369d76b6b8 -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663621cf8781e93738b3e30f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663621cf8781e93738b3e30f.md index 1a51db3e6b0..e4f97c9b391 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663621cf8781e93738b3e30f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663621cf8781e93738b3e30f.md @@ -1,6 +1,6 @@ --- id: 663621cf8781e93738b3e30f -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66362350df72dc37d8c9ca40.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66362350df72dc37d8c9ca40.md index 323035658cb..6ff2f97cd1e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66362350df72dc37d8c9ca40.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66362350df72dc37d8c9ca40.md @@ -1,6 +1,6 @@ --- id: 66362350df72dc37d8c9ca40 -title: Task 19 +title: Tarefa 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636242c12c019384fd78b5a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636242c12c019384fd78b5a.md index 4549f59af72..5a9b9c35e14 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636242c12c019384fd78b5a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636242c12c019384fd78b5a.md @@ -1,6 +1,6 @@ --- id: 6636242c12c019384fd78b5a -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636263059a6703a80ee06aa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636263059a6703a80ee06aa.md index 8e434cc1832..b775f00c353 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636263059a6703a80ee06aa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636263059a6703a80ee06aa.md @@ -9,6 +9,6 @@ dashedName: dialogue-2-discussing-serverless-computing Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663626ee2c3a803af8cc2fd6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663626ee2c3a803af8cc2fd6.md index 7124f782672..604ac3c0239 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663626ee2c3a803af8cc2fd6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663626ee2c3a803af8cc2fd6.md @@ -1,6 +1,6 @@ --- id: 663626ee2c3a803af8cc2fd6 -title: Task 21 +title: Tarefa 21 challengeType: 19 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66362781eb0d663b5eabc353.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66362781eb0d663b5eabc353.md index 1d8bf2af8e7..f3dfd4c0a92 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66362781eb0d663b5eabc353.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66362781eb0d663b5eabc353.md @@ -1,6 +1,6 @@ --- id: 66362781eb0d663b5eabc353 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636285e6fcb733bdffaa986.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636285e6fcb733bdffaa986.md index 7d4171fe9b4..c101ef17a6b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636285e6fcb733bdffaa986.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636285e6fcb733bdffaa986.md @@ -1,6 +1,6 @@ --- id: 6636285e6fcb733bdffaa986 -title: Task 23 +title: Tarefa 23 challengeType: 22 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636ebb50b24c83f130344f4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636ebb50b24c83f130344f4.md index 58bf0f863ff..86cf4ae804f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636ebb50b24c83f130344f4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636ebb50b24c83f130344f4.md @@ -1,6 +1,6 @@ --- id: 6636ebb50b24c83f130344f4 -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636ee901c0de13ff4f02edc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636ee901c0de13ff4f02edc.md index ce0f2155c73..d1eeae8a6b7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636ee901c0de13ff4f02edc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636ee901c0de13ff4f02edc.md @@ -1,6 +1,6 @@ --- id: 6636ee901c0de13ff4f02edc -title: Task 25 +title: Tarefa 25 challengeType: 22 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f20df76124410fe597e9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f20df76124410fe597e9.md index c729c8daf6f..1babdd585af 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f20df76124410fe597e9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f20df76124410fe597e9.md @@ -1,6 +1,6 @@ --- id: 6636f20df76124410fe597e9 -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f36bfde85f41809044c9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f36bfde85f41809044c9.md index 8c8086dfc18..e33098b6d35 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f36bfde85f41809044c9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f36bfde85f41809044c9.md @@ -1,6 +1,6 @@ --- id: 6636f36bfde85f41809044c9 -title: Task 27 +title: Tarefa 27 challengeType: 19 dashedName: task-27 --- @@ -9,7 +9,7 @@ dashedName: task-27 Comparatives are used to compare two things or people. For short adjectives, typically those with one or two syllables, you add `-er` to the end of the word, like `tall` becomes `taller` and `small` becomes `smaller`. For words which end in `-y`, you change the `y` to `i` and add `-er`, like `happy` becomes `happier`. -Examples: +Exemplos: `He is taller than his brother.` - `Taller` is the comparative form of `tall`, used because the speaker is comparing the height of two people. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f47542d2a4421a433d8e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f47542d2a4421a433d8e.md index bc2cb19cb93..47b5f8aa216 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f47542d2a4421a433d8e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f47542d2a4421a433d8e.md @@ -1,6 +1,6 @@ --- id: 6636f47542d2a4421a433d8e -title: Task 28 +title: Tarefa 28 challengeType: 19 dashedName: task-28 --- @@ -9,7 +9,7 @@ dashedName: task-28 For longer adjectives, typically those with two or more syllables, you use `more` or `less` before the adjective to form comparatives. This structure helps compare qualities or characteristics of different items or people. -Examples: +Exemplos: `This book is more interesting than the one I read last week.` `More interesting` is the comparative form of `interesting`, used to compare the level of interest between two books. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f652561a9842e74b032a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f652561a9842e74b032a.md index c0d145ac83a..ea68f3fff40 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f652561a9842e74b032a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f652561a9842e74b032a.md @@ -1,6 +1,6 @@ --- id: 6636f652561a9842e74b032a -title: Task 29 +title: Tarefa 29 challengeType: 22 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f834a7b32443a43fa4e0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f834a7b32443a43fa4e0.md index 0f49db4942e..4e14234e35b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f834a7b32443a43fa4e0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f834a7b32443a43fa4e0.md @@ -1,6 +1,6 @@ --- id: 6636f834a7b32443a43fa4e0 -title: Task 30 +title: Tarefa 30 challengeType: 19 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f90f25a10b442185e3b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f90f25a10b442185e3b8.md index 9ed8f350d80..e03eaa563c4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f90f25a10b442185e3b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6636f90f25a10b442185e3b8.md @@ -1,6 +1,6 @@ --- id: 6636f90f25a10b442185e3b8 -title: Task 31 +title: Tarefa 31 challengeType: 22 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638478a5f79414a5126bca3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638478a5f79414a5126bca3.md index eaeb0adb8af..b753dc1ca3d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638478a5f79414a5126bca3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638478a5f79414a5126bca3.md @@ -1,6 +1,6 @@ --- id: 6638478a5f79414a5126bca3 -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384b3e267aef4c6daf5279.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384b3e267aef4c6daf5279.md index 5e498a65c61..10b160d41a6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384b3e267aef4c6daf5279.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384b3e267aef4c6daf5279.md @@ -1,6 +1,6 @@ --- id: 66384b3e267aef4c6daf5279 -title: Task 33 +title: Tarefa 33 challengeType: 22 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384d37bfbd344d5c647fbd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384d37bfbd344d5c647fbd.md index 14bc7b659c9..34b5ee57041 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384d37bfbd344d5c647fbd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384d37bfbd344d5c647fbd.md @@ -1,6 +1,6 @@ --- id: 66384d37bfbd344d5c647fbd -title: Task 34 +title: Tarefa 34 challengeType: 22 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384eb6677d974e02af573b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384eb6677d974e02af573b.md index 0aefcfc3bcc..6f7125dca20 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384eb6677d974e02af573b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66384eb6677d974e02af573b.md @@ -1,6 +1,6 @@ --- id: 66384eb6677d974e02af573b -title: Task 35 +title: Tarefa 35 challengeType: 19 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638510e8311f74fec51b839.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638510e8311f74fec51b839.md index 8f168ef8c86..83a76b3d6fd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638510e8311f74fec51b839.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638510e8311f74fec51b839.md @@ -9,6 +9,6 @@ dashedName: dialogue-3-discussing-ai-in-programming Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663855865f5d53510f9cd9a5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663855865f5d53510f9cd9a5.md index 3347b853431..1d0e3cb8287 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663855865f5d53510f9cd9a5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663855865f5d53510f9cd9a5.md @@ -1,6 +1,6 @@ --- id: 663855865f5d53510f9cd9a5 -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663856f8cf403151ac9d9e8a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663856f8cf403151ac9d9e8a.md index 8f42e404960..f8fc5cec3a7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663856f8cf403151ac9d9e8a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663856f8cf403151ac9d9e8a.md @@ -1,6 +1,6 @@ --- id: 663856f8cf403151ac9d9e8a -title: Task 37 +title: Tarefa 37 challengeType: 19 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663897f00196a953f16499c6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663897f00196a953f16499c6.md index 83e4cddc341..8d377390b4d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663897f00196a953f16499c6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/663897f00196a953f16499c6.md @@ -1,6 +1,6 @@ --- id: 663897f00196a953f16499c6 -title: Task 38 +title: Tarefa 38 challengeType: 19 dashedName: task-38 --- @@ -9,7 +9,7 @@ dashedName: task-38 The word `any` is often used in questions and negative sentences to indicate an indefinite amount or number. It helps indicate that the quantity or existence is uncertain or general. -Examples: +Exemplos: `Do you have any questions?` - `Any` is used in a question to ask if there are questions, even one. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638994f7dbcb3548e458202.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638994f7dbcb3548e458202.md index 05a5b56ecd7..57155ca2ecc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638994f7dbcb3548e458202.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638994f7dbcb3548e458202.md @@ -1,6 +1,6 @@ --- id: 6638994f7dbcb3548e458202 -title: Task 39 +title: Tarefa 39 challengeType: 19 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389a37bc8a4b5539eab451.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389a37bc8a4b5539eab451.md index 7c6111015ea..014f6b9d818 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389a37bc8a4b5539eab451.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389a37bc8a4b5539eab451.md @@ -1,6 +1,6 @@ --- id: 66389a37bc8a4b5539eab451 -title: Task 40 +title: Tarefa 40 challengeType: 19 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389c04cffc4f55e6e0f798.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389c04cffc4f55e6e0f798.md index 250fc36df2e..2590f91c2fc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389c04cffc4f55e6e0f798.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389c04cffc4f55e6e0f798.md @@ -1,6 +1,6 @@ --- id: 66389c04cffc4f55e6e0f798 -title: Task 41 +title: Tarefa 41 challengeType: 22 dashedName: task-41 --- @@ -16,7 +16,7 @@ The verb `involve` means to include something as a necessary part or component. `Involve` is often followed by another verb in the `-ing` form (gerund) to describe actions or processes that are a part of something. -Examples: +Exemplos: `The job involves working with computers.` It means working with computers is a necessary part of the job. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389e09cec2fa569567b15a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389e09cec2fa569567b15a.md index 8d6628f2ee3..5f0f556a7e7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389e09cec2fa569567b15a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389e09cec2fa569567b15a.md @@ -1,6 +1,6 @@ --- id: 66389e09cec2fa569567b15a -title: Task 42 +title: Tarefa 42 challengeType: 19 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389ee34417c057109ed5f6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389ee34417c057109ed5f6.md index 554d1ef4375..fe930e6f0f7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389ee34417c057109ed5f6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/66389ee34417c057109ed5f6.md @@ -1,6 +1,6 @@ --- id: 66389ee34417c057109ed5f6 -title: Task 43 +title: Tarefa 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a163d5757f57e5270598.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a163d5757f57e5270598.md index 1051373c098..0411683e7bc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a163d5757f57e5270598.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a163d5757f57e5270598.md @@ -1,6 +1,6 @@ --- id: 6638a163d5757f57e5270598 -title: Task 44 +title: Tarefa 44 challengeType: 19 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a290bc4a5458dd6ebf07.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a290bc4a5458dd6ebf07.md index f1eb94f9bc1..27b9ece04af 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a290bc4a5458dd6ebf07.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a290bc4a5458dd6ebf07.md @@ -1,6 +1,6 @@ --- id: 6638a290bc4a5458dd6ebf07 -title: Task 45 +title: Tarefa 45 challengeType: 22 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a5aaf619a15a1c5cfe6f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a5aaf619a15a1c5cfe6f.md index 31ba02cb042..7dbc434c749 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a5aaf619a15a1c5cfe6f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a5aaf619a15a1c5cfe6f.md @@ -1,6 +1,6 @@ --- id: 6638a5aaf619a15a1c5cfe6f -title: Task 46 +title: Tarefa 46 challengeType: 22 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a7713695f25abd3f3c02.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a7713695f25abd3f3c02.md index b520b70c873..6476d443498 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a7713695f25abd3f3c02.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a7713695f25abd3f3c02.md @@ -1,6 +1,6 @@ --- id: 6638a7713695f25abd3f3c02 -title: Task 47 +title: Tarefa 47 challengeType: 22 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a9a5dee1ac5b6a9db7d9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a9a5dee1ac5b6a9db7d9.md index ed37a5edfe6..70ea4e06f9d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a9a5dee1ac5b6a9db7d9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638a9a5dee1ac5b6a9db7d9.md @@ -1,6 +1,6 @@ --- id: 6638a9a5dee1ac5b6a9db7d9 -title: Task 48 +title: Tarefa 48 challengeType: 19 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638aa72831d185bdac55c12.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638aa72831d185bdac55c12.md index fff47ab5ddc..b136948638f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638aa72831d185bdac55c12.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638aa72831d185bdac55c12.md @@ -1,6 +1,6 @@ --- id: 6638aa72831d185bdac55c12 -title: Task 49 +title: Tarefa 49 challengeType: 22 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638abe5e8d43a5c7ed9d320.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638abe5e8d43a5c7ed9d320.md index f37f23d672e..9aca7b4721d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638abe5e8d43a5c7ed9d320.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/6638abe5e8d43a5c7ed9d320.md @@ -1,6 +1,6 @@ --- id: 6638abe5e8d43a5c7ed9d320 -title: Task 50 +title: Tarefa 50 challengeType: 19 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 1091804f791..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index 5991e73da5a..d757d5d8b25 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,17 +1,17 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video. +Assista ao vídeo. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c1255efe438cbba5ce06.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c1255efe438cbba5ce06.md index 4c6b66e166d..3658530fff1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c1255efe438cbba5ce06.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c1255efe438cbba5ce06.md @@ -1,6 +1,6 @@ --- id: 6556c1255efe438cbba5ce06 -title: Task 6 +title: Tarefa 6 challengeType: 19 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c24670683b8d6d80bb32.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c24670683b8d6d80bb32.md index 8a169f74244..5ee9e85ce5a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c24670683b8d6d80bb32.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c24670683b8d6d80bb32.md @@ -1,6 +1,6 @@ --- id: 6556c24670683b8d6d80bb32 -title: Task 9 +title: Tarefa 9 challengeType: 22 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c3561e21d38e21518845.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c3561e21d38e21518845.md index 6722861c731..d292b211b2f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c3561e21d38e21518845.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6556c3561e21d38e21518845.md @@ -1,6 +1,6 @@ --- id: 6556c3561e21d38e21518845 -title: Task 7 +title: Tarefa 7 challengeType: 22 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655792631f21afaa40c611e1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655792631f21afaa40c611e1.md index 17d41c67139..42c3c500aad 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655792631f21afaa40c611e1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655792631f21afaa40c611e1.md @@ -1,6 +1,6 @@ --- id: 655792631f21afaa40c611e1 -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 --- @@ -11,7 +11,7 @@ dashedName: task-13 The words `before` and `after` are used to describe the order of events in time. -`Before` is used to talk about something that happens earlier than another event, and `after` is used for something that happens later. For example: +`Before` is used to talk about something that happens earlier than another event, and `after` is used for something that happens later. Por exemplo: `I brush my teeth before I have breakfast` (Brushing teeth happens first) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655795519e1068aac3351755.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655795519e1068aac3351755.md index 289b427358c..5b65ddf3987 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655795519e1068aac3351755.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655795519e1068aac3351755.md @@ -1,6 +1,6 @@ --- id: 655795519e1068aac3351755 -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557b169bc7ab4b66929672d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557b169bc7ab4b66929672d.md index 6572eef8f8e..8699d86c8b8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557b169bc7ab4b66929672d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557b169bc7ab4b66929672d.md @@ -1,6 +1,6 @@ --- id: 6557b169bc7ab4b66929672d -title: Task 17 +title: Tarefa 17 challengeType: 19 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557d6a229e541bfde2c560d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557d6a229e541bfde2c560d.md index 7cb13f79b8f..61fce5fdfe6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557d6a229e541bfde2c560d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557d6a229e541bfde2c560d.md @@ -11,7 +11,7 @@ dashedName: task-26 `Early` refers to doing something sooner or before the usual time, like waking up early in the morning. -`Late` means doing something after the expected or usual time, like arriving late to a meeting. Here are some examples: +`Late` means doing something after the expected or usual time, like arriving late to a meeting. Aqui estão alguns exemplos: `She likes to start her day early with a jog.` `He often works late at the office.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557db51366bf6c15a966fb0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557db51366bf6c15a966fb0.md index 26a04b78bb0..8de27c8d055 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557db51366bf6c15a966fb0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557db51366bf6c15a966fb0.md @@ -1,6 +1,6 @@ --- id: 6557db51366bf6c15a966fb0 -title: Task 28 +title: Tarefa 28 challengeType: 19 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557dea8c258c1c2a767deb7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557dea8c258c1c2a767deb7.md index 402c20d4946..698720b59a2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557dea8c258c1c2a767deb7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557dea8c258c1c2a767deb7.md @@ -11,7 +11,7 @@ dashedName: task-30 The word `even` is used to add emphasis to a statement, often highlighting something surprising, unexpected, or extreme. -When combined with `before` in the phrase `even before`, it emphasizes that an action or event occurs earlier than usual or expected, adding a sense of surprise or admiration. For example: +When combined with `before` in the phrase `even before`, it emphasizes that an action or event occurs earlier than usual or expected, adding a sense of surprise or admiration. Por exemplo: `Even before the sun rises, she starts her workout.` (emphasizes that her workout begins unusually early) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557e026c053f9c362a1983e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557e026c053f9c362a1983e.md index cbf20791daa..ba7adb2ecf0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557e026c053f9c362a1983e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557e026c053f9c362a1983e.md @@ -1,6 +1,6 @@ --- id: 6557e026c053f9c362a1983e -title: Task 31 +title: Tarefa 31 challengeType: 22 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557e1ad953431c417763b3b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557e1ad953431c417763b3b.md index fb2ce926630..f40ce19c9e4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557e1ad953431c417763b3b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/6557e1ad953431c417763b3b.md @@ -1,6 +1,6 @@ --- id: 6557e1ad953431c417763b3b -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/65593cf82e2430e8567edf39.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/65593cf82e2430e8567edf39.md index e38040f7f25..8ace4796327 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/65593cf82e2430e8567edf39.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/65593cf82e2430e8567edf39.md @@ -7,11 +7,11 @@ dashedName: dialogue-consulting-a-wellness-expert # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a21f5512be1f7dbfe4cad.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a21f5512be1f7dbfe4cad.md index 031e7d1fe28..beba4380583 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a21f5512be1f7dbfe4cad.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a21f5512be1f7dbfe4cad.md @@ -1,6 +1,6 @@ --- id: 655a21f5512be1f7dbfe4cad -title: Task 36 +title: Tarefa 36 challengeType: 19 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a256c6fce94fb9c1cc841.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a256c6fce94fb9c1cc841.md index 90d2a978e72..4d3ef121c87 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a256c6fce94fb9c1cc841.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a256c6fce94fb9c1cc841.md @@ -1,6 +1,6 @@ --- id: 655a256c6fce94fb9c1cc841 -title: Task 39 +title: Tarefa 39 challengeType: 19 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a33bb8f2009ff7a7abfaa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a33bb8f2009ff7a7abfaa.md index 475b1729030..31b5a9f1fff 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a33bb8f2009ff7a7abfaa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a33bb8f2009ff7a7abfaa.md @@ -1,6 +1,6 @@ --- id: 655a33bb8f2009ff7a7abfaa -title: Task 42 +title: Tarefa 42 challengeType: 22 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3470e882d10004441cf3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3470e882d10004441cf3.md index 06a1d2bb6a4..8247bfe9b2d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3470e882d10004441cf3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3470e882d10004441cf3.md @@ -1,6 +1,6 @@ --- id: 655a3470e882d10004441cf3 -title: Task 43 +title: Tarefa 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a367638e3f401eb0235ea.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a367638e3f401eb0235ea.md index 7dfa0f0d837..65d621252c7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a367638e3f401eb0235ea.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a367638e3f401eb0235ea.md @@ -11,7 +11,7 @@ dashedName: task-45 `I feel groggy if I don't get enough sleep` (describes feeling tired due to lack of sleep) -`Sluggish` is an adjective that describes a feeling of low energy, slow movement, or a lack of alertness. It's often used when someone feels tired, lethargic, or not able to think or move quickly. This term can apply to both physical and mental states. Here are some examples: +`Sluggish` is an adjective that describes a feeling of low energy, slow movement, or a lack of alertness. It's often used when someone feels tired, lethargic, or not able to think or move quickly. This term can apply to both physical and mental states. Aqui estão alguns exemplos: `The computer was running sluggishly, taking a long time to respond` (describes slow performance, used metaphorically for an inanimate object) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a39242197c9040ddedef2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a39242197c9040ddedef2.md index 231e3c13dd0..3e020929805 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a39242197c9040ddedef2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a39242197c9040ddedef2.md @@ -1,6 +1,6 @@ --- id: 655a39242197c9040ddedef2 -title: Task 47 +title: Tarefa 47 challengeType: 22 dashedName: task-47 --- @@ -27,7 +27,7 @@ The imperative form is used to give orders, instructions, or advice. It often st ### --feedback-- -Base form of the verb used for giving a positive command. This word is capitalized. +Base form of the verb used for giving a positive command. Esta palavra inicia com letra maiúscula. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3a2fe5a5cd04f8caa03e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3a2fe5a5cd04f8caa03e.md index bc549260d93..eb641222164 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3a2fe5a5cd04f8caa03e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3a2fe5a5cd04f8caa03e.md @@ -1,6 +1,6 @@ --- id: 655a3a2fe5a5cd04f8caa03e -title: Task 48 +title: Tarefa 48 challengeType: 19 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3b8981a93f05bbfea7ba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3b8981a93f05bbfea7ba.md index a68ff5a96e0..719e026af89 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3b8981a93f05bbfea7ba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3b8981a93f05bbfea7ba.md @@ -10,7 +10,7 @@ dashedName: task-49 The verb `to skip` means to not do or not include something that you usually do or that should be done. -`Compensate` means to make up for something that is missed or lacking. It's often used to describe actions taken to balance out an absence or deficiency. For example: +`Compensate` means to make up for something that is missed or lacking. It's often used to describe actions taken to balance out an absence or deficiency. Por exemplo: `If you skip lunch, you might compensate by eating more at dinner.` (not having lunch and then eating more later to make up for it) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3cc030fb970687d6444d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3cc030fb970687d6444d.md index 39724b3496b..3333016b7b8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3cc030fb970687d6444d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a3cc030fb970687d6444d.md @@ -1,6 +1,6 @@ --- id: 655a3cc030fb970687d6444d -title: Task 50 +title: Tarefa 50 challengeType: 19 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a4e0c1176be0e1b785c96.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a4e0c1176be0e1b785c96.md index ca941aa71c1..0000a996089 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a4e0c1176be0e1b785c96.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a4e0c1176be0e1b785c96.md @@ -1,6 +1,6 @@ --- id: 655a4e0c1176be0e1b785c96 -title: Task 53 +title: Tarefa 53 challengeType: 22 dashedName: task-53 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a55068842f6143a7bcc46.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a55068842f6143a7bcc46.md index 24c0579eb31..ec68c9b5055 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a55068842f6143a7bcc46.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a55068842f6143a7bcc46.md @@ -1,6 +1,6 @@ --- id: 655a55068842f6143a7bcc46 -title: Task 59 +title: Tarefa 59 challengeType: 22 dashedName: task-59 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a591ad34faa18c8338f9b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a591ad34faa18c8338f9b.md index a380f06bbba..08828f3c9b2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a591ad34faa18c8338f9b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a591ad34faa18c8338f9b.md @@ -7,11 +7,11 @@ dashedName: dialogue-evening-routine-with-kids # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a5e76ca6f8d1b1a88e0f1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a5e76ca6f8d1b1a88e0f1.md index 925ab087460..aa97b9bc066 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a5e76ca6f8d1b1a88e0f1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a5e76ca6f8d1b1a88e0f1.md @@ -1,6 +1,6 @@ --- id: 655a5e76ca6f8d1b1a88e0f1 -title: Task 63 +title: Tarefa 63 challengeType: 19 dashedName: task-63 --- @@ -19,7 +19,7 @@ Regular verbs usually add `-ed` to form the past tense. This can also result in Extra note to help with the audio: -`Running around` means moving about in a hurried or energetic way, often chaotically. For example: +`Running around` means moving about in a hurried or energetic way, often chaotically. Por exemplo: `The kids are running around the playground` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a79e595bd202b4cd5e2d2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a79e595bd202b4cd5e2d2.md index d9e349753f2..7ef1c14edcb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a79e595bd202b4cd5e2d2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a79e595bd202b4cd5e2d2.md @@ -1,6 +1,6 @@ --- id: 655a79e595bd202b4cd5e2d2 -title: Task 65 +title: Tarefa 65 challengeType: 22 dashedName: task-65 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a7c5211e5252cf8a4ed01.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a7c5211e5252cf8a4ed01.md index 4e5e162290e..bcc571a6d16 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a7c5211e5252cf8a4ed01.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a7c5211e5252cf8a4ed01.md @@ -1,6 +1,6 @@ --- id: 655a7c5211e5252cf8a4ed01 -title: Task 67 +title: Tarefa 67 challengeType: 22 dashedName: task-67 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a7d752ffc542e5874af0b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a7d752ffc542e5874af0b.md index e996d58f631..38e49d70135 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a7d752ffc542e5874af0b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a7d752ffc542e5874af0b.md @@ -1,6 +1,6 @@ --- id: 655a7d752ffc542e5874af0b -title: Task 66 +title: Tarefa 66 challengeType: 19 dashedName: task-66 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a896f31ca6a32913d1106.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a896f31ca6a32913d1106.md index ce70938e874..7537c10454a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a896f31ca6a32913d1106.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a896f31ca6a32913d1106.md @@ -19,7 +19,7 @@ Adjectives can also change the meaning of the following word by adding details t `Light exercises are good for beginners.` This means exercises that are not heavy or hard are good for people who are just starting. The word `light` as an adjective tells you what kind of exercises they are. -Even words like `family` and `outdoor` can be used as adjectives, they describe the noun that follows them. For example: +Even words like `family` and `outdoor` can be used as adjectives, they describe the noun that follows them. Por exemplo: `Family activities bring everyone together.` (`family` describes the type of activities) `Outdoor sports are enjoyable in good weather.` (`outdoor` describes where the sports happen) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a8c9d2a0ea136a0fd3631.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a8c9d2a0ea136a0fd3631.md index 53b359643c2..3c32ca3c318 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a8c9d2a0ea136a0fd3631.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a8c9d2a0ea136a0fd3631.md @@ -1,6 +1,6 @@ --- id: 655a8c9d2a0ea136a0fd3631 -title: Task 72 +title: Tarefa 72 challengeType: 19 dashedName: task-72 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9a4cef8a173b8c27fc84.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9a4cef8a173b8c27fc84.md index ccf76f3d05b..72a2b9cfe73 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9a4cef8a173b8c27fc84.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9a4cef8a173b8c27fc84.md @@ -1,6 +1,6 @@ --- id: 655a9a4cef8a173b8c27fc84 -title: Task 76 +title: Tarefa 76 challengeType: 19 dashedName: task-76 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9d161bf4cf51369ff1e0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9d161bf4cf51369ff1e0.md index c29faaeca08..30084fb2e08 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9d161bf4cf51369ff1e0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9d161bf4cf51369ff1e0.md @@ -1,6 +1,6 @@ --- id: 655a9d161bf4cf51369ff1e0 -title: Task 77 +title: Tarefa 77 challengeType: 22 dashedName: task-77 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 559b35f3f6d..d24395db319 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,17 +1,17 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b283d10fee46040e0a893.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b283d10fee46040e0a893.md index a2240891530..6c6f0c190f1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b283d10fee46040e0a893.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b283d10fee46040e0a893.md @@ -1,6 +1,6 @@ --- id: 655b283d10fee46040e0a893 -title: Task 82 +title: Tarefa 82 challengeType: 19 dashedName: task-82 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b29fb2c8b1861bf4fbab1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b29fb2c8b1861bf4fbab1.md index c21c82be134..39f876ce4bd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b29fb2c8b1861bf4fbab1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b29fb2c8b1861bf4fbab1.md @@ -1,6 +1,6 @@ --- id: 655b29fb2c8b1861bf4fbab1 -title: Task 84 +title: Tarefa 84 challengeType: 19 dashedName: task-84 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b2aa6807cae6273ca23fb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b2aa6807cae6273ca23fb.md index 8b68faa77c2..85b9b381371 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b2aa6807cae6273ca23fb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b2aa6807cae6273ca23fb.md @@ -1,6 +1,6 @@ --- id: 655b2aa6807cae6273ca23fb -title: "Task 85" +title: "Tarefa 85" challengeType: 19 dashedName: task-85 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b32b2812874680f3198d3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b32b2812874680f3198d3.md index 98d5328694b..4024d3048c0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b32b2812874680f3198d3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b32b2812874680f3198d3.md @@ -1,6 +1,6 @@ --- id: 655b32b2812874680f3198d3 -title: "Task 90" +title: "Tarefa 90" challengeType: 22 dashedName: task-90 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index c6118bf1e63..962b101cd54 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,17 +1,17 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34e53bf2cb6908042c98.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34e53bf2cb6908042c98.md index b81fa67866f..bf1ef3b7faa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34e53bf2cb6908042c98.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34e53bf2cb6908042c98.md @@ -1,6 +1,6 @@ --- id: 655b34e53bf2cb6908042c98 -title: Task 91 +title: Tarefa 91 challengeType: 19 dashedName: task-91 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b3581926acd6a172fa94b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b3581926acd6a172fa94b.md index 99e31b9a410..9e5456915b7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b3581926acd6a172fa94b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b3581926acd6a172fa94b.md @@ -1,6 +1,6 @@ --- id: 655b3581926acd6a172fa94b -title: Task 92 +title: Tarefa 92 challengeType: 19 dashedName: task-92 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b37ecf9da446bd1dcff4f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b37ecf9da446bd1dcff4f.md index 736d9dd90e1..5a0a5f66da1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b37ecf9da446bd1dcff4f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b37ecf9da446bd1dcff4f.md @@ -1,6 +1,6 @@ --- id: 655b37ecf9da446bd1dcff4f -title: "Task 94" +title: "Tarefa 94" challengeType: 22 dashedName: task-94 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b39e59c29d16d64a2ce8e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b39e59c29d16d64a2ce8e.md index 4f67331562c..2fd8855d502 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b39e59c29d16d64a2ce8e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b39e59c29d16d64a2ce8e.md @@ -1,6 +1,6 @@ --- id: 655b39e59c29d16d64a2ce8e -title: Task 96 +title: Tarefa 96 challengeType: 22 dashedName: task-96 --- @@ -17,7 +17,7 @@ dashedName: task-96 `I know we wanted to travel. We don't have the money for the tickets, though.` -`I suppose` is used to express a mild assumption or agreement. For example: +`I suppose` is used to express a mild assumption or agreement. Por exemplo: `I suppose we could meet tomorrow.` (mild agreement or suggestion) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65ddb2ee481da72f38f076ad.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65ddb2ee481da72f38f076ad.md index 45f51841592..65c3e618e70 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65ddb2ee481da72f38f076ad.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65ddb2ee481da72f38f076ad.md @@ -8,8 +8,8 @@ dashedName: dialogue-1-introduction-to-code-documentation # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65ddb38c14e76d317c6128e6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65ddb38c14e76d317c6128e6.md index 883ffbe7581..db1f5b997a0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65ddb38c14e76d317c6128e6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65ddb38c14e76d317c6128e6.md @@ -1,6 +1,6 @@ --- id: 65ddb38c14e76d317c6128e6 -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e44fdc3b0d5813ee7fc300.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e44fdc3b0d5813ee7fc300.md index 41837b1bdc2..f07e5fed976 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e44fdc3b0d5813ee7fc300.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e44fdc3b0d5813ee7fc300.md @@ -1,6 +1,6 @@ --- id: 65e44fdc3b0d5813ee7fc300 -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e452611e67af1a07314eb6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e452611e67af1a07314eb6.md index e5db28c2269..b7a10346397 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e452611e67af1a07314eb6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e452611e67af1a07314eb6.md @@ -1,6 +1,6 @@ --- id: 65e452611e67af1a07314eb6 -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e4642c66bb7a29b328111e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e4642c66bb7a29b328111e.md index 0a317caf040..b991ad8a8ab 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e4642c66bb7a29b328111e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e4642c66bb7a29b328111e.md @@ -1,6 +1,6 @@ --- id: 65e4642c66bb7a29b328111e -title: Task 4 +title: Tarefa 4 challengeType: 19 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e46524078f872c3a871f9f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e46524078f872c3a871f9f.md index f5975b2a529..e22399ae7a4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e46524078f872c3a871f9f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e46524078f872c3a871f9f.md @@ -1,6 +1,6 @@ --- id: 65e46524078f872c3a871f9f -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 --- @@ -37,7 +37,7 @@ Loud --- -Transparent +Transparente ### --feedback-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e4660946dec02eb08f1a0d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e4660946dec02eb08f1a0d.md index 690897f70b3..bdcee91650c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e4660946dec02eb08f1a0d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e4660946dec02eb08f1a0d.md @@ -1,6 +1,6 @@ --- id: 65e4660946dec02eb08f1a0d -title: Task 6 +title: Tarefa 6 challengeType: 19 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e466b7e1db1530a27f413b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e466b7e1db1530a27f413b.md index 54ebe0fd82f..b0169622fe3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e466b7e1db1530a27f413b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e466b7e1db1530a27f413b.md @@ -1,6 +1,6 @@ --- id: 65e466b7e1db1530a27f413b -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e468fe7454d936320fe31c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e468fe7454d936320fe31c.md index aeba7d7b1ea..e4d0623cb6d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e468fe7454d936320fe31c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e468fe7454d936320fe31c.md @@ -1,6 +1,6 @@ --- id: 65e468fe7454d936320fe31c -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5c959087282242cf23f03.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5c959087282242cf23f03.md index fff8521f06f..07cd19f5724 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5c959087282242cf23f03.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5c959087282242cf23f03.md @@ -1,6 +1,6 @@ --- id: 65e5c959087282242cf23f03 -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5ca3d8fd484268f4336d4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5ca3d8fd484268f4336d4.md index c6b0b051389..18b28ca435b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5ca3d8fd484268f4336d4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5ca3d8fd484268f4336d4.md @@ -1,6 +1,6 @@ --- id: 65e5ca3d8fd484268f4336d4 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5caebc431182877f90758.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5caebc431182877f90758.md index 25b9d69aa7f..3367760a5a7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5caebc431182877f90758.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5caebc431182877f90758.md @@ -1,6 +1,6 @@ --- id: 65e5caebc431182877f90758 -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cc619608ce2bf40e3ce8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cc619608ce2bf40e3ce8.md index f1f4c1884cd..d0dd81d92e3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cc619608ce2bf40e3ce8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cc619608ce2bf40e3ce8.md @@ -1,6 +1,6 @@ --- id: 65e5cc619608ce2bf40e3ce8 -title: Task 12 +title: Tarefa 12 challengeType: 22 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cd292dbe212e2af21c9e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cd292dbe212e2af21c9e.md index 4c52b90987a..f7a18edaa7b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cd292dbe212e2af21c9e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cd292dbe212e2af21c9e.md @@ -1,6 +1,6 @@ --- id: 65e5cd292dbe212e2af21c9e -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cf002c98ea3289bf2bea.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cf002c98ea3289bf2bea.md index 2d538116240..393844e6445 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cf002c98ea3289bf2bea.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5cf002c98ea3289bf2bea.md @@ -1,6 +1,6 @@ --- id: 65e5cf002c98ea3289bf2bea -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5d04819aa7c35cf23028c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5d04819aa7c35cf23028c.md index 57bbe938449..1f4b70ca59c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5d04819aa7c35cf23028c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5d04819aa7c35cf23028c.md @@ -1,6 +1,6 @@ --- id: 65e5d04819aa7c35cf23028c -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5d1128a3a2137ff818dd6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5d1128a3a2137ff818dd6.md index f8e1ca2711c..fcad16f2dd2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5d1128a3a2137ff818dd6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e5d1128a3a2137ff818dd6.md @@ -1,6 +1,6 @@ --- id: 65e5d1128a3a2137ff818dd6 -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e84a436d691712a7769ea9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e84a436d691712a7769ea9.md index 50c556effdc..bbd89f3a25a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e84a436d691712a7769ea9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e84a436d691712a7769ea9.md @@ -1,6 +1,6 @@ --- id: 65e84a436d691712a7769ea9 -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e85c512d559f216cacd3c4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e85c512d559f216cacd3c4.md index 441c21217d5..8a09f2e9afc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e85c512d559f216cacd3c4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e85c512d559f216cacd3c4.md @@ -1,6 +1,6 @@ --- id: 65e85c512d559f216cacd3c4 -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e865a63c108a2f651b58c4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e865a63c108a2f651b58c4.md index ed4e6c54e93..0f88320ba7b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e865a63c108a2f651b58c4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e865a63c108a2f651b58c4.md @@ -1,6 +1,6 @@ --- id: 65e865a63c108a2f651b58c4 -title: Task 19 +title: Tarefa 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8668b12eaa63202034f84.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8668b12eaa63202034f84.md index b4f224491be..6b05a30886f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8668b12eaa63202034f84.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8668b12eaa63202034f84.md @@ -1,6 +1,6 @@ --- id: 65e8668b12eaa63202034f84 -title: Task 20 +title: Tarefa 20 challengeType: 22 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8677731fef734895ac330.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8677731fef734895ac330.md index 0ab2379bb70..997bbf0bd5b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8677731fef734895ac330.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8677731fef734895ac330.md @@ -1,6 +1,6 @@ --- id: 65e8677731fef734895ac330 -title: Task 21 +title: Tarefa 21 challengeType: 19 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8687c037bd7373bac6bb8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8687c037bd7373bac6bb8.md index 96f3f7de523..912aba6e1a7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8687c037bd7373bac6bb8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8687c037bd7373bac6bb8.md @@ -1,6 +1,6 @@ --- id: 65e8687c037bd7373bac6bb8 -title: Task 22 +title: Tarefa 22 challengeType: 22 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8697e64f1883a30a759e5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8697e64f1883a30a759e5.md index d94426d15cc..42feb30b821 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8697e64f1883a30a759e5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e8697e64f1883a30a759e5.md @@ -1,6 +1,6 @@ --- id: 65e8697e64f1883a30a759e5 -title: Task 23 +title: Tarefa 23 challengeType: 22 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e86cac39492642332416e9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e86cac39492642332416e9.md index 5db6c7d681a..80e6e54172a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e86cac39492642332416e9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e86cac39492642332416e9.md @@ -8,8 +8,8 @@ dashedName: dialogue-2-adding-comments-to-code # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e86e39e990f4461c9e23a7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e86e39e990f4461c9e23a7.md index 47aeb929035..1995995f47c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e86e39e990f4461c9e23a7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e86e39e990f4461c9e23a7.md @@ -1,6 +1,6 @@ --- id: 65e86e39e990f4461c9e23a7 -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e870a2ad67264ba3aac3f6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e870a2ad67264ba3aac3f6.md index 22f19b35b99..8facad902ab 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e870a2ad67264ba3aac3f6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e870a2ad67264ba3aac3f6.md @@ -1,6 +1,6 @@ --- id: 65e870a2ad67264ba3aac3f6 -title: Task 25 +title: Tarefa 25 challengeType: 22 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e92d17a7e3c777c5a2f4b1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e92d17a7e3c777c5a2f4b1.md index dc80faabb8c..fad8fec4805 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e92d17a7e3c777c5a2f4b1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e92d17a7e3c777c5a2f4b1.md @@ -1,6 +1,6 @@ --- id: 65e92d17a7e3c777c5a2f4b1 -title: Task 26 +title: Tarefa 26 challengeType: 22 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e932555f5de583b53ac688.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e932555f5de583b53ac688.md index aae199055ef..9d7ae56d99b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e932555f5de583b53ac688.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e932555f5de583b53ac688.md @@ -1,6 +1,6 @@ --- id: 65e932555f5de583b53ac688 -title: Task 27 +title: Tarefa 27 challengeType: 19 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93353894747864641dc5c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93353894747864641dc5c.md index b90852c9cca..75ce24e90fb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93353894747864641dc5c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93353894747864641dc5c.md @@ -1,6 +1,6 @@ --- id: 65e93353894747864641dc5c -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93446e44ce704166696fa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93446e44ce704166696fa.md index c64921c66ca..234e8e1f864 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93446e44ce704166696fa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93446e44ce704166696fa.md @@ -1,6 +1,6 @@ --- id: 65e93446e44ce704166696fa -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e935d6ca6d6b082cf59682.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e935d6ca6d6b082cf59682.md index 67570ebd3be..4e739149ab0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e935d6ca6d6b082cf59682.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e935d6ca6d6b082cf59682.md @@ -1,6 +1,6 @@ --- id: 65e935d6ca6d6b082cf59682 -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9376e45814e0c248c2262.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9376e45814e0c248c2262.md index b7dfb7a520b..0c40d3cccbe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9376e45814e0c248c2262.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9376e45814e0c248c2262.md @@ -1,6 +1,6 @@ --- id: 65e9376e45814e0c248c2262 -title: Task 31 +title: Tarefa 31 challengeType: 22 dashedName: task-31 --- @@ -18,7 +18,7 @@ Brian: You can also explain what certain functions do, and clarify the purpose o A `variable` is like a box where you can store information or data in a computer program. You can change what's inside the box, or `variable`, as your program runs. It's a way to keep track of and use data in your code. -Examples: +Exemplos: `He clarified the instructions by providing a step-by-step guide.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9393152c63010e8d14dce.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9393152c63010e8d14dce.md index b713906f596..b4d0ce98330 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9393152c63010e8d14dce.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9393152c63010e8d14dce.md @@ -1,6 +1,6 @@ --- id: 65e9393152c63010e8d14dce -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93a6cca356414bb39c4a6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93a6cca356414bb39c4a6.md index fc94760e8b1..501f317cfd4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93a6cca356414bb39c4a6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93a6cca356414bb39c4a6.md @@ -1,6 +1,6 @@ --- id: 65e93a6cca356414bb39c4a6 -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93b241e3f2216db6801e8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93b241e3f2216db6801e8.md index e3f1c696ebc..756af72c1a8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93b241e3f2216db6801e8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93b241e3f2216db6801e8.md @@ -1,6 +1,6 @@ --- id: 65e93b241e3f2216db6801e8 -title: Task 34 +title: Tarefa 34 challengeType: 22 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93be2cbc1da18d7602a31.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93be2cbc1da18d7602a31.md index 6f0bdf8aa18..b4f49483c82 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93be2cbc1da18d7602a31.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e93be2cbc1da18d7602a31.md @@ -1,6 +1,6 @@ --- id: 65e93be2cbc1da18d7602a31 -title: Task 35 +title: Tarefa 35 challengeType: 22 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e943b74900112d64038331.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e943b74900112d64038331.md index c15700717a3..a3a06f2ca22 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e943b74900112d64038331.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e943b74900112d64038331.md @@ -8,8 +8,8 @@ dashedName: dialogue-3-version-control-and-documenting-changes # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99114ec85863bbd32be2d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99114ec85863bbd32be2d.md index b65b050af47..b66d423d69a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99114ec85863bbd32be2d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99114ec85863bbd32be2d.md @@ -1,6 +1,6 @@ --- id: 65e99114ec85863bbd32be2d -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e992a27a99bd3fce984132.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e992a27a99bd3fce984132.md index ba767f243e4..d57771d0605 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e992a27a99bd3fce984132.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e992a27a99bd3fce984132.md @@ -1,6 +1,6 @@ --- id: 65e992a27a99bd3fce984132 -title: Task 37 +title: Tarefa 37 challengeType: 19 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9932d9cab2348221a1139.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9932d9cab2348221a1139.md index 96d026a74e9..a27656e988e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9932d9cab2348221a1139.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9932d9cab2348221a1139.md @@ -1,6 +1,6 @@ --- id: 65e9932d9cab2348221a1139 -title: Task 38 +title: Tarefa 38 challengeType: 22 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e993f3248e434a5a47744c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e993f3248e434a5a47744c.md index 2a3fa2b64c3..26cfc831b78 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e993f3248e434a5a47744c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e993f3248e434a5a47744c.md @@ -1,6 +1,6 @@ --- id: 65e993f3248e434a5a47744c -title: Task 39 +title: Tarefa 39 challengeType: 19 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e994e2f526634d09c0814a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e994e2f526634d09c0814a.md index 545598b78df..fa27a8f15f5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e994e2f526634d09c0814a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e994e2f526634d09c0814a.md @@ -1,6 +1,6 @@ --- id: 65e994e2f526634d09c0814a -title: Task 40 +title: Tarefa 40 challengeType: 22 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99595bee9924f07b5abc3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99595bee9924f07b5abc3.md index 23f5d496efd..f0c2bbeae02 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99595bee9924f07b5abc3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99595bee9924f07b5abc3.md @@ -1,6 +1,6 @@ --- id: 65e99595bee9924f07b5abc3 -title: Task 41 +title: Tarefa 41 challengeType: 19 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9965b96af115148dc3d79.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9965b96af115148dc3d79.md index ec93f33618b..ffac4cb2dc5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9965b96af115148dc3d79.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9965b96af115148dc3d79.md @@ -1,6 +1,6 @@ --- id: 65e9965b96af115148dc3d79 -title: Task 42 +title: Tarefa 42 challengeType: 22 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9972a13329b53a5aff71f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9972a13329b53a5aff71f.md index d925b667d8e..9157f8219b6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9972a13329b53a5aff71f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9972a13329b53a5aff71f.md @@ -1,6 +1,6 @@ --- id: 65e9972a13329b53a5aff71f -title: Task 43 +title: Tarefa 43 challengeType: 19 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e997de10f05355b0354cf8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e997de10f05355b0354cf8.md index e9129f100a1..efd51bb97d6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e997de10f05355b0354cf8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e997de10f05355b0354cf8.md @@ -1,6 +1,6 @@ --- id: 65e997de10f05355b0354cf8 -title: Task 44 +title: Tarefa 44 challengeType: 22 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9988f286c8457cc809619.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9988f286c8457cc809619.md index 846c5182ba2..12b6821162f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9988f286c8457cc809619.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9988f286c8457cc809619.md @@ -1,6 +1,6 @@ --- id: 65e9988f286c8457cc809619 -title: Task 45 +title: Tarefa 45 challengeType: 22 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9991e59d4b959920e8c7d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9991e59d4b959920e8c7d.md index eaeae840140..e780148916b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9991e59d4b959920e8c7d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e9991e59d4b959920e8c7d.md @@ -1,6 +1,6 @@ --- id: 65e9991e59d4b959920e8c7d -title: Task 46 +title: Tarefa 46 challengeType: 19 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e999be5746e45b5a8bb757.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e999be5746e45b5a8bb757.md index c825ebbed58..dbaa5db0859 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e999be5746e45b5a8bb757.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e999be5746e45b5a8bb757.md @@ -1,6 +1,6 @@ --- id: 65e999be5746e45b5a8bb757 -title: Task 47 +title: Tarefa 47 challengeType: 22 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99a2986903b5c9f4bc720.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99a2986903b5c9f4bc720.md index 8865f40d726..8be0558b208 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99a2986903b5c9f4bc720.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/65e99a2986903b5c9f4bc720.md @@ -1,6 +1,6 @@ --- id: 65e99a2986903b5c9f4bc720 -title: Task 48 +title: Tarefa 48 challengeType: 22 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 485c7335d29..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661750f15f41cc866197183d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661750f15f41cc866197183d.md index c534c72086c..c25d6600966 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661750f15f41cc866197183d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661750f15f41cc866197183d.md @@ -9,6 +9,6 @@ dashedName: dialogue-1-reviewing-an-app-design Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617513e3855718810b088d0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617513e3855718810b088d0.md index dff5eedab44..8a55310c6fd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617513e3855718810b088d0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617513e3855718810b088d0.md @@ -1,6 +1,6 @@ --- id: 6617513e3855718810b088d0 -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617528c1b07688acdfea4e9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617528c1b07688acdfea4e9.md index 66c28b7840a..c8246e38fcf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617528c1b07688acdfea4e9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617528c1b07688acdfea4e9.md @@ -1,6 +1,6 @@ --- id: 6617528c1b07688acdfea4e9 -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661752fbc765ec8c13f96616.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661752fbc765ec8c13f96616.md index 2a7bf14f4e0..0fbdf393157 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661752fbc765ec8c13f96616.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661752fbc765ec8c13f96616.md @@ -1,6 +1,6 @@ --- id: 661752fbc765ec8c13f96616 -title: Task 3 +title: Tarefa 3 challengeType: 19 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66175386c145ea8d96b0adf9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66175386c145ea8d96b0adf9.md index 5b27b7fc9bb..2618de3f048 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66175386c145ea8d96b0adf9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66175386c145ea8d96b0adf9.md @@ -1,6 +1,6 @@ --- id: 66175386c145ea8d96b0adf9 -title: Task 4 +title: Tarefa 4 challengeType: 22 dashedName: task-4 --- @@ -22,7 +22,7 @@ When you add `-ful` to `respect`, you get the adjective `respectful`, which desc Adding `-ly` to `respectful` turns it into `respectfully`, which describes how an action is done with `respect`. -Examples: +Exemplos: `I respect your opinion.` This means you admire or value someone's opinion. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617562f72eb2a9387252430.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617562f72eb2a9387252430.md index a444bef6872..4f7af569f06 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617562f72eb2a9387252430.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617562f72eb2a9387252430.md @@ -1,6 +1,6 @@ --- id: 6617562f72eb2a9387252430 -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617569f81323494d7c80fa4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617569f81323494d7c80fa4.md index d7d65bbf337..27d777b5252 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617569f81323494d7c80fa4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617569f81323494d7c80fa4.md @@ -1,6 +1,6 @@ --- id: 6617569f81323494d7c80fa4 -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661757150c7a75961a574a39.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661757150c7a75961a574a39.md index 54c82cdb631..b87427a5dad 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661757150c7a75961a574a39.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661757150c7a75961a574a39.md @@ -1,6 +1,6 @@ --- id: 661757150c7a75961a574a39 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66175792ec93b19771c55c62.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66175792ec93b19771c55c62.md index 2f2eb115a75..35ee1d3104f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66175792ec93b19771c55c62.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66175792ec93b19771c55c62.md @@ -1,6 +1,6 @@ --- id: 66175792ec93b19771c55c62 -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661757e285095e986fed9c27.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661757e285095e986fed9c27.md index 1127c7b07ce..92d4def4f97 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661757e285095e986fed9c27.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661757e285095e986fed9c27.md @@ -1,6 +1,6 @@ --- id: 661757e285095e986fed9c27 -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66177150856cd6d0ca504c9f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66177150856cd6d0ca504c9f.md index 1eabe98d4aa..f57caa1a61d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66177150856cd6d0ca504c9f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66177150856cd6d0ca504c9f.md @@ -9,6 +9,6 @@ dashedName: dialogue-2-what-to-prioritize-next Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661771a11af289d1ec5c72f9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661771a11af289d1ec5c72f9.md index 6a0d3a69ea8..0846f92429f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661771a11af289d1ec5c72f9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661771a11af289d1ec5c72f9.md @@ -1,6 +1,6 @@ --- id: 661771a11af289d1ec5c72f9 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661772551b64ddd40c834b1e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661772551b64ddd40c834b1e.md index aaa6c75b732..b74193f959f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661772551b64ddd40c834b1e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661772551b64ddd40c834b1e.md @@ -1,6 +1,6 @@ --- id: 661772551b64ddd40c834b1e -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661772f42e1412d5bfe4c655.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661772f42e1412d5bfe4c655.md index 6ad085f2791..3afdfb2e3c5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661772f42e1412d5bfe4c655.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661772f42e1412d5bfe4c655.md @@ -1,6 +1,6 @@ --- id: 661772f42e1412d5bfe4c655 -title: Task 12 +title: Tarefa 12 challengeType: 22 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617962704224fe969a76811.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617962704224fe969a76811.md index c2645da1457..45fbfcb6f0b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617962704224fe969a76811.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617962704224fe969a76811.md @@ -1,6 +1,6 @@ --- id: 6617962704224fe969a76811 -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661796e4635cd3eb1c8c78a4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661796e4635cd3eb1c8c78a4.md index 7ddadbbc848..b35d24aeeed 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661796e4635cd3eb1c8c78a4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661796e4635cd3eb1c8c78a4.md @@ -1,6 +1,6 @@ --- id: 661796e4635cd3eb1c8c78a4 -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661797b505f2d3ed4b170d74.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661797b505f2d3ed4b170d74.md index 27db2af9262..aec9870ccd1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661797b505f2d3ed4b170d74.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/661797b505f2d3ed4b170d74.md @@ -1,6 +1,6 @@ --- id: 661797b505f2d3ed4b170d74 -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66179829f664e3ee9b42ce5f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66179829f664e3ee9b42ce5f.md index a34c4178db9..71545cc0a7f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66179829f664e3ee9b42ce5f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/66179829f664e3ee9b42ce5f.md @@ -1,6 +1,6 @@ --- id: 66179829f664e3ee9b42ce5f -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617994636fa13f16060b12b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617994636fa13f16060b12b.md index 9c89b23cdf4..90c010d1645 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617994636fa13f16060b12b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617994636fa13f16060b12b.md @@ -1,6 +1,6 @@ --- id: 6617994636fa13f16060b12b -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617aea9ccdd68f7088368d1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617aea9ccdd68f7088368d1.md index e519ab219ab..c1a0a14ef36 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617aea9ccdd68f7088368d1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617aea9ccdd68f7088368d1.md @@ -1,6 +1,6 @@ --- id: 6617aea9ccdd68f7088368d1 -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617af3ab73475f87b53a59d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617af3ab73475f87b53a59d.md index 9b201df7da7..731f0cae8af 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617af3ab73475f87b53a59d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617af3ab73475f87b53a59d.md @@ -1,6 +1,6 @@ --- id: 6617af3ab73475f87b53a59d -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617afa03e1a7bf99f123c52.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617afa03e1a7bf99f123c52.md index 27bb62598d6..611749e472e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617afa03e1a7bf99f123c52.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617afa03e1a7bf99f123c52.md @@ -1,6 +1,6 @@ --- id: 6617afa03e1a7bf99f123c52 -title: Task 20 +title: Tarefa 20 challengeType: 22 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b04b6e9139fb30d059d9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b04b6e9139fb30d059d9.md index bf741d8c100..83901811e62 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b04b6e9139fb30d059d9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b04b6e9139fb30d059d9.md @@ -9,6 +9,6 @@ dashedName: dialogue-3-how-to-approach-the-project Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b087df2220fcc00514ec.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b087df2220fcc00514ec.md index 5ce2210137e..e4f575c80e3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b087df2220fcc00514ec.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b087df2220fcc00514ec.md @@ -1,6 +1,6 @@ --- id: 6617b087df2220fcc00514ec -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b1efe920c2ffea40b54d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b1efe920c2ffea40b54d.md index 43004547761..22ee806970e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b1efe920c2ffea40b54d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b1efe920c2ffea40b54d.md @@ -1,6 +1,6 @@ --- id: 6617b1efe920c2ffea40b54d -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b23534265c00d6b800fd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b23534265c00d6b800fd.md index dc2ab8f0ecf..45a955b31f9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b23534265c00d6b800fd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b23534265c00d6b800fd.md @@ -1,6 +1,6 @@ --- id: 6617b23534265c00d6b800fd -title: Task 23 +title: Tarefa 23 challengeType: 22 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b2b0388c600232500e28.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b2b0388c600232500e28.md index 03d0eb46375..503be7f8357 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b2b0388c600232500e28.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b2b0388c600232500e28.md @@ -1,6 +1,6 @@ --- id: 6617b2b0388c600232500e28 -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b34260704803d74a6e07.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b34260704803d74a6e07.md index 55077937878..2f9605e0bb5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b34260704803d74a6e07.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b34260704803d74a6e07.md @@ -1,6 +1,6 @@ --- id: 6617b34260704803d74a6e07 -title: Task 25 +title: Tarefa 25 challengeType: 22 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b3d0e2de65050f11351c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b3d0e2de65050f11351c.md index 1426703578b..990ae8d4beb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b3d0e2de65050f11351c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b3d0e2de65050f11351c.md @@ -1,6 +1,6 @@ --- id: 6617b3d0e2de65050f11351c -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b41fe23fc0066e715317.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b41fe23fc0066e715317.md index d51668eac61..3e033ac6dcb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b41fe23fc0066e715317.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b41fe23fc0066e715317.md @@ -1,6 +1,6 @@ --- id: 6617b41fe23fc0066e715317 -title: Task 27 +title: Tarefa 27 challengeType: 19 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b494880f74079c400fa2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b494880f74079c400fa2.md index cc55fa47c6d..7db42d5b107 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b494880f74079c400fa2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b494880f74079c400fa2.md @@ -1,6 +1,6 @@ --- id: 6617b494880f74079c400fa2 -title: Task 28 +title: Tarefa 28 challengeType: 19 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b500a7049808f3a2a593.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b500a7049808f3a2a593.md index 1c3d66f85c1..5c96fe7b057 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b500a7049808f3a2a593.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b500a7049808f3a2a593.md @@ -1,6 +1,6 @@ --- id: 6617b500a7049808f3a2a593 -title: Task 29 +title: Tarefa 29 challengeType: 22 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b53e5eda8e09c6c67d28.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b53e5eda8e09c6c67d28.md index 531b870f089..371a3a91f6a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b53e5eda8e09c6c67d28.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b53e5eda8e09c6c67d28.md @@ -1,6 +1,6 @@ --- id: 6617b53e5eda8e09c6c67d28 -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b674eb480b0c8d3d6031.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b674eb480b0c8d3d6031.md index ef7656c7b00..be72186c369 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b674eb480b0c8d3d6031.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b674eb480b0c8d3d6031.md @@ -1,6 +1,6 @@ --- id: 6617b674eb480b0c8d3d6031 -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b81046e7b11287a7bef8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b81046e7b11287a7bef8.md index 4576e864924..00befeeb6e3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b81046e7b11287a7bef8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b81046e7b11287a7bef8.md @@ -1,6 +1,6 @@ --- id: 6617b81046e7b11287a7bef8 -title: Task 32 +title: Tarefa 32 challengeType: 19 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b9b4bb38f916a2c01f8e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b9b4bb38f916a2c01f8e.md index 1364cf6ce86..8daaa889c62 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b9b4bb38f916a2c01f8e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617b9b4bb38f916a2c01f8e.md @@ -1,6 +1,6 @@ --- id: 6617b9b4bb38f916a2c01f8e -title: Task 33 +title: Tarefa 33 challengeType: 22 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617bae50ecd231987654d2e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617bae50ecd231987654d2e.md index f03680beb35..76821afee67 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617bae50ecd231987654d2e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/6617bae50ecd231987654d2e.md @@ -1,6 +1,6 @@ --- id: 6617bae50ecd231987654d2e -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index e4f0b600866..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index 0daabc2c6c8..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658111239f39a01c8f095c44.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658111239f39a01c8f095c44.md index de4fa3e7ee3..dfeaa4cca81 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658111239f39a01c8f095c44.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658111239f39a01c8f095c44.md @@ -9,9 +9,9 @@ dashedName: dialogue-1-what-motivates-the-team Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658112ee8ac40a1d9619f160.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658112ee8ac40a1d9619f160.md index bd40d89ce39..ca78166a4ac 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658112ee8ac40a1d9619f160.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658112ee8ac40a1d9619f160.md @@ -1,6 +1,6 @@ --- id: 658112ee8ac40a1d9619f160 -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658113cc404fc81e44cb941c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658113cc404fc81e44cb941c.md index 279e2861a88..fa77c597ca7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658113cc404fc81e44cb941c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658113cc404fc81e44cb941c.md @@ -1,6 +1,6 @@ --- id: 658113cc404fc81e44cb941c -title: Task 5 +title: Tarefa 5 challengeType: 22 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658114e39ae35a1ece3e4ef1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658114e39ae35a1ece3e4ef1.md index 3ecb0ccb702..bfeb37e79e3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658114e39ae35a1ece3e4ef1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658114e39ae35a1ece3e4ef1.md @@ -1,6 +1,6 @@ --- id: 658114e39ae35a1ece3e4ef1 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581157ca9f14c1f5394d232.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581157ca9f14c1f5394d232.md index 80d98bbbc33..d1da0f0e0a3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581157ca9f14c1f5394d232.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581157ca9f14c1f5394d232.md @@ -1,6 +1,6 @@ --- id: 6581157ca9f14c1f5394d232 -title: Task 8 +title: Tarefa 8 challengeType: 22 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65811619cf9fad1fe57fd7b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65811619cf9fad1fe57fd7b8.md index cfa8469782b..482449988d5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65811619cf9fad1fe57fd7b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65811619cf9fad1fe57fd7b8.md @@ -1,6 +1,6 @@ --- id: 65811619cf9fad1fe57fd7b8 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581178fca60702052899c94.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581178fca60702052899c94.md index 252cf48c05b..b0e9b9a9d88 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581178fca60702052899c94.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581178fca60702052899c94.md @@ -1,6 +1,6 @@ --- id: 6581178fca60702052899c94 -title: Task 18 +title: Tarefa 18 challengeType: 22 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658118a9a10235216e6cd698.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658118a9a10235216e6cd698.md index 2ea50eff48d..bafd8e0369b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658118a9a10235216e6cd698.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658118a9a10235216e6cd698.md @@ -1,6 +1,6 @@ --- id: 658118a9a10235216e6cd698 -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658147bb3dbda824437fd6f9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658147bb3dbda824437fd6f9.md index 042955730aa..aff1b9184c0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658147bb3dbda824437fd6f9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658147bb3dbda824437fd6f9.md @@ -1,6 +1,6 @@ --- id: 658147bb3dbda824437fd6f9 -title: Task 12 +title: Tarefa 12 challengeType: 22 dashedName: task-12 --- @@ -29,7 +29,7 @@ The word `professionally` relates to your job or career. For instance, `He behav ### --feedback-- -This word is about gaining new knowledge or skills. Think about what you do at school or when you study something new. This word is capitalized. +This word is about gaining new knowledge or skills. Think about what you do at school or when you study something new. Esta palavra está em maiúsculas. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65814f353f7b4f252e11b550.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65814f353f7b4f252e11b550.md index 008035b84e7..4120a98a9aa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65814f353f7b4f252e11b550.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65814f353f7b4f252e11b550.md @@ -1,6 +1,6 @@ --- id: 65814f353f7b4f252e11b550 -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65815057676f2625ba44a320.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65815057676f2625ba44a320.md index e087041f3d9..32b625227aa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65815057676f2625ba44a320.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65815057676f2625ba44a320.md @@ -1,6 +1,6 @@ --- id: 65815057676f2625ba44a320 -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658150c6b7f47a2629b2372d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658150c6b7f47a2629b2372d.md index 2963fbb46c3..a271bbe371a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658150c6b7f47a2629b2372d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658150c6b7f47a2629b2372d.md @@ -1,6 +1,6 @@ --- id: 658150c6b7f47a2629b2372d -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581530787b552274518eea5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581530787b552274518eea5.md index ed340f1a31c..0fd261b1fd4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581530787b552274518eea5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581530787b552274518eea5.md @@ -1,6 +1,6 @@ --- id: 6581530787b552274518eea5 -title: Task 9 +title: Tarefa 9 challengeType: 22 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658153bbda68b527d415c463.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658153bbda68b527d415c463.md index cf6dcc31710..22da35389fd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658153bbda68b527d415c463.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658153bbda68b527d415c463.md @@ -1,6 +1,6 @@ --- id: 658153bbda68b527d415c463 -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658154d361f5f6285eeeffc6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658154d361f5f6285eeeffc6.md index 8de15f47d1c..16d774f2f98 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658154d361f5f6285eeeffc6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658154d361f5f6285eeeffc6.md @@ -1,6 +1,6 @@ --- id: 658154d361f5f6285eeeffc6 -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581557c17e64128b1a5aeb6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581557c17e64128b1a5aeb6.md index cf25eb6d64f..ae8216fabcd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581557c17e64128b1a5aeb6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581557c17e64128b1a5aeb6.md @@ -1,6 +1,6 @@ --- id: 6581557c17e64128b1a5aeb6 -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581561eb7a353292c4a1ff7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581561eb7a353292c4a1ff7.md index f74bac67a8c..1fc70327181 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581561eb7a353292c4a1ff7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581561eb7a353292c4a1ff7.md @@ -1,6 +1,6 @@ --- id: 6581561eb7a353292c4a1ff7 -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581568b3a22522999c40969.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581568b3a22522999c40969.md index 47fa79cfaf8..6d7723d61f6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581568b3a22522999c40969.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581568b3a22522999c40969.md @@ -1,6 +1,6 @@ --- id: 6581568b3a22522999c40969 -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581576a14f97b2a2d82c584.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581576a14f97b2a2d82c584.md index 1b4aea4a2b1..74ee86343e3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581576a14f97b2a2d82c584.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581576a14f97b2a2d82c584.md @@ -1,6 +1,6 @@ --- id: 6581576a14f97b2a2d82c584 -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658157d104bbc92a95147e45.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658157d104bbc92a95147e45.md index bd8c7fa6444..7beae00d5d0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658157d104bbc92a95147e45.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658157d104bbc92a95147e45.md @@ -1,6 +1,6 @@ --- id: 658157d104bbc92a95147e45 -title: Task 32 +title: Tarefa 32 challengeType: 19 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581588237ef332b1f4a2418.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581588237ef332b1f4a2418.md index 9712d6a3279..7ff155c62c5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581588237ef332b1f4a2418.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581588237ef332b1f4a2418.md @@ -1,6 +1,6 @@ --- id: 6581588237ef332b1f4a2418 -title: Task 35 +title: Tarefa 35 challengeType: 22 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658158edd3fc672bafe96079.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658158edd3fc672bafe96079.md index c5b54c0b913..df7d4a1c733 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658158edd3fc672bafe96079.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658158edd3fc672bafe96079.md @@ -1,6 +1,6 @@ --- id: 658158edd3fc672bafe96079 -title: Task 38 +title: Tarefa 38 challengeType: 22 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581596326d6ef2c0b39200d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581596326d6ef2c0b39200d.md index 974459e9326..c9c3dc2ee86 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581596326d6ef2c0b39200d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581596326d6ef2c0b39200d.md @@ -1,6 +1,6 @@ --- id: 6581596326d6ef2c0b39200d -title: Task 39 +title: Tarefa 39 challengeType: 22 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658160772584ba319849f910.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658160772584ba319849f910.md index c1b55b444af..799d6469e1c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658160772584ba319849f910.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658160772584ba319849f910.md @@ -9,9 +9,9 @@ dashedName: dialogue-2-asking-how-someone-feels Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65816188f69f4731f852414b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65816188f69f4731f852414b.md index 9a3003405af..0decaba71de 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65816188f69f4731f852414b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65816188f69f4731f852414b.md @@ -1,6 +1,6 @@ --- id: 65816188f69f4731f852414b -title: Task 40 +title: Tarefa 40 challengeType: 22 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658162d19fa392326fe7a5c7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658162d19fa392326fe7a5c7.md index fdd78d7f84d..a92b37e4daf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658162d19fa392326fe7a5c7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658162d19fa392326fe7a5c7.md @@ -1,6 +1,6 @@ --- id: 658162d19fa392326fe7a5c7 -title: Task 41 +title: Tarefa 41 challengeType: 22 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658163793f65e532b8fa18e6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658163793f65e532b8fa18e6.md index e30ea2d793a..434669a41a4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658163793f65e532b8fa18e6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658163793f65e532b8fa18e6.md @@ -1,6 +1,6 @@ --- id: 658163793f65e532b8fa18e6 -title: Task 42 +title: Tarefa 42 challengeType: 22 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65816435fa555c330f785cbb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65816435fa555c330f785cbb.md index b19719a1211..5b84aa8ab7c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65816435fa555c330f785cbb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65816435fa555c330f785cbb.md @@ -1,6 +1,6 @@ --- id: 65816435fa555c330f785cbb -title: Task 43 +title: Tarefa 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65818f21f6e4f33551f7023a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65818f21f6e4f33551f7023a.md index 524c4be5635..692b0016b58 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65818f21f6e4f33551f7023a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65818f21f6e4f33551f7023a.md @@ -1,6 +1,6 @@ --- id: 65818f21f6e4f33551f7023a -title: Task 44 +title: Tarefa 44 challengeType: 19 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658191bf5053a835c882fdd3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658191bf5053a835c882fdd3.md index b084d8c5f2d..27f5d07ddaf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658191bf5053a835c882fdd3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658191bf5053a835c882fdd3.md @@ -1,6 +1,6 @@ --- id: 658191bf5053a835c882fdd3 -title: Task 45 +title: Tarefa 45 challengeType: 19 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65819284843aab3625cf49e1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65819284843aab3625cf49e1.md index 18b3ede5a71..69d2e95b0e4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65819284843aab3625cf49e1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65819284843aab3625cf49e1.md @@ -1,6 +1,6 @@ --- id: 65819284843aab3625cf49e1 -title: Task 46 +title: Tarefa 46 challengeType: 22 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658192efec6fe7366f7b99d2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658192efec6fe7366f7b99d2.md index 143b260cab0..2f911a5ee39 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658192efec6fe7366f7b99d2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658192efec6fe7366f7b99d2.md @@ -1,6 +1,6 @@ --- id: 658192efec6fe7366f7b99d2 -title: Task 47 +title: Tarefa 47 challengeType: 22 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65819377e2ad2536b3d1e0c0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65819377e2ad2536b3d1e0c0.md index 5c132f9bd9c..79c18befdba 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65819377e2ad2536b3d1e0c0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65819377e2ad2536b3d1e0c0.md @@ -1,6 +1,6 @@ --- id: 65819377e2ad2536b3d1e0c0 -title: Task 48 +title: Tarefa 48 challengeType: 22 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581944b911c3c3715d35518.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581944b911c3c3715d35518.md index 1c59d0c36f8..d076508b0c7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581944b911c3c3715d35518.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581944b911c3c3715d35518.md @@ -1,6 +1,6 @@ --- id: 6581944b911c3c3715d35518 -title: Task 49 +title: Tarefa 49 challengeType: 19 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658194a34cb24537624fad0e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658194a34cb24537624fad0e.md index 89639635494..90ea27920b7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658194a34cb24537624fad0e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658194a34cb24537624fad0e.md @@ -1,6 +1,6 @@ --- id: 658194a34cb24537624fad0e -title: Task 50 +title: Tarefa 50 challengeType: 22 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581950a4e5ca237a17d1a02.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581950a4e5ca237a17d1a02.md index eb1ae62b875..85fa479d093 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581950a4e5ca237a17d1a02.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581950a4e5ca237a17d1a02.md @@ -1,6 +1,6 @@ --- id: 6581950a4e5ca237a17d1a02 -title: Task 51 +title: Tarefa 51 challengeType: 22 dashedName: task-51 --- @@ -25,7 +25,7 @@ Listen to Tom's statement and fill in the missing words about what else is troub ### --feedback-- -This word means one more or an extra thing. This word is capitalized. +This word means one more or an extra thing. Esta palavra inicia com letra maiúscula. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658195600d516b37e310fbf2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658195600d516b37e310fbf2.md index 9e516b17b69..a8ee25ec5cc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658195600d516b37e310fbf2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658195600d516b37e310fbf2.md @@ -1,6 +1,6 @@ --- id: 658195600d516b37e310fbf2 -title: Task 52 +title: Tarefa 52 challengeType: 19 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658197767dc3fc387439e067.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658197767dc3fc387439e067.md index f457d5cb4c2..aeb097a971f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658197767dc3fc387439e067.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/658197767dc3fc387439e067.md @@ -1,6 +1,6 @@ --- id: 658197767dc3fc387439e067 -title: Task 53 +title: Tarefa 53 challengeType: 22 dashedName: task-53 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a2a527222938f4f0a9eb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a2a527222938f4f0a9eb.md index a0c2ef0d79a..901fe3efd25 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a2a527222938f4f0a9eb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a2a527222938f4f0a9eb.md @@ -1,6 +1,6 @@ --- id: 6581a2a527222938f4f0a9eb -title: Task 54 +title: Tarefa 54 challengeType: 19 dashedName: task-54 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a32ee97531393b34b783.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a32ee97531393b34b783.md index 97dde90f3cb..ae3e0c71e1a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a32ee97531393b34b783.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a32ee97531393b34b783.md @@ -1,6 +1,6 @@ --- id: 6581a32ee97531393b34b783 -title: Task 55 +title: Tarefa 55 challengeType: 22 dashedName: task-55 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a3ccf2ecd839816c885d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a3ccf2ecd839816c885d.md index 30aeb3ff460..3ce78b15c25 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a3ccf2ecd839816c885d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a3ccf2ecd839816c885d.md @@ -1,6 +1,6 @@ --- id: 6581a3ccf2ecd839816c885d -title: Task 56 +title: Tarefa 56 challengeType: 19 dashedName: task-56 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a46a402a0d39de6b1932.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a46a402a0d39de6b1932.md index 2957a5033ab..3eec5417c05 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a46a402a0d39de6b1932.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a46a402a0d39de6b1932.md @@ -1,6 +1,6 @@ --- id: 6581a46a402a0d39de6b1932 -title: Task 57 +title: Tarefa 57 challengeType: 22 dashedName: task-57 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a5c14eb46b3a36f082c6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a5c14eb46b3a36f082c6.md index cf49c33b69a..850cb232638 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a5c14eb46b3a36f082c6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a5c14eb46b3a36f082c6.md @@ -1,6 +1,6 @@ --- id: 6581a5c14eb46b3a36f082c6 -title: Task 58 +title: Tarefa 58 challengeType: 22 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a6b50e86ae3a9041f6f1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a6b50e86ae3a9041f6f1.md index e189fc50af5..1d084715b32 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a6b50e86ae3a9041f6f1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a6b50e86ae3a9041f6f1.md @@ -1,6 +1,6 @@ --- id: 6581a6b50e86ae3a9041f6f1 -title: Task 59 +title: Tarefa 59 challengeType: 19 dashedName: task-59 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a7d6af8f2f3aefd232ab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a7d6af8f2f3aefd232ab.md index a5f87b483bd..4c77f803d41 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a7d6af8f2f3aefd232ab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a7d6af8f2f3aefd232ab.md @@ -1,6 +1,6 @@ --- id: 6581a7d6af8f2f3aefd232ab -title: Task 60 +title: Tarefa 60 challengeType: 19 dashedName: task-60 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a95da053653b4593a650.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a95da053653b4593a650.md index 7f182561d7f..86ab937eebe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a95da053653b4593a650.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581a95da053653b4593a650.md @@ -1,6 +1,6 @@ --- id: 6581a95da053653b4593a650 -title: Task 61 +title: Tarefa 61 challengeType: 22 dashedName: task-61 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581aa0c6583c53b927defa4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581aa0c6583c53b927defa4.md index d0f7a57efaa..ee2a6c0bb94 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581aa0c6583c53b927defa4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581aa0c6583c53b927defa4.md @@ -1,6 +1,6 @@ --- id: 6581aa0c6583c53b927defa4 -title: Task 62 +title: Tarefa 62 challengeType: 22 dashedName: task-62 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581add0405ccf3bfc3c1d5f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581add0405ccf3bfc3c1d5f.md index bef09034af7..d46b4ed860a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581add0405ccf3bfc3c1d5f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6581add0405ccf3bfc3c1d5f.md @@ -1,6 +1,6 @@ --- id: 6581add0405ccf3bfc3c1d5f -title: Task 63 +title: Tarefa 63 challengeType: 22 dashedName: task-63 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1f4b78e0174e6ce7272ff.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1f4b78e0174e6ce7272ff.md index c2eefbb7b7d..b682aad9770 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1f4b78e0174e6ce7272ff.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1f4b78e0174e6ce7272ff.md @@ -1,6 +1,6 @@ --- id: 65a1f4b78e0174e6ce7272ff -title: Task 65 +title: Tarefa 65 challengeType: 19 dashedName: task-65 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1f959ca8f18f0e711d596.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1f959ca8f18f0e711d596.md index dc1a51e3b48..d249695a206 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1f959ca8f18f0e711d596.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1f959ca8f18f0e711d596.md @@ -1,6 +1,6 @@ --- id: 65a1f959ca8f18f0e711d596 -title: Task 66 +title: Tarefa 66 challengeType: 22 dashedName: task-66 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1fa60a447d4f36ae16e1e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1fa60a447d4f36ae16e1e.md index ae0f2da0a0d..62ba8316ca7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1fa60a447d4f36ae16e1e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a1fa60a447d4f36ae16e1e.md @@ -1,6 +1,6 @@ --- id: 65a1fa60a447d4f36ae16e1e -title: Task 67 +title: Tarefa 67 challengeType: 19 dashedName: task-67 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a25ccb31eedb00df74679f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a25ccb31eedb00df74679f.md index e34ef923278..d3d643566a3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a25ccb31eedb00df74679f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a25ccb31eedb00df74679f.md @@ -1,6 +1,6 @@ --- id: 65a25ccb31eedb00df74679f -title: Task 64 +title: Tarefa 64 challengeType: 22 dashedName: task-64 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..84436740673 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- @@ -9,9 +9,9 @@ dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3524b7cfbc82f51667b0a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3524b7cfbc82f51667b0a.md index 23c160c642f..915bf5282aa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3524b7cfbc82f51667b0a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3524b7cfbc82f51667b0a.md @@ -1,6 +1,6 @@ --- id: 65a3524b7cfbc82f51667b0a -title: Task 68 +title: Tarefa 68 challengeType: 22 dashedName: task-68 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35281e6f8f4303df075e5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35281e6f8f4303df075e5.md index 3a96b95c93a..4a4c2e62440 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35281e6f8f4303df075e5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35281e6f8f4303df075e5.md @@ -1,6 +1,6 @@ --- id: 65a35281e6f8f4303df075e5 -title: Task 69 +title: Tarefa 69 challengeType: 19 dashedName: task-69 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a352d14f8050311510e2e9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a352d14f8050311510e2e9.md index 9dc5f7bc32d..9b0436e3794 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a352d14f8050311510e2e9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a352d14f8050311510e2e9.md @@ -1,6 +1,6 @@ --- id: 65a352d14f8050311510e2e9 -title: Task 70 +title: Tarefa 70 challengeType: 22 dashedName: task-70 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35340e8c3ae32030cea01.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35340e8c3ae32030cea01.md index 22a27d6cb43..cf0f8da0cc8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35340e8c3ae32030cea01.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35340e8c3ae32030cea01.md @@ -1,6 +1,6 @@ --- id: 65a35340e8c3ae32030cea01 -title: Task 71 +title: Tarefa 71 challengeType: 22 dashedName: task-71 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3538f615216331ea90f58.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3538f615216331ea90f58.md index f006bbf44d1..c8292d0fea5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3538f615216331ea90f58.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3538f615216331ea90f58.md @@ -1,6 +1,6 @@ --- id: 65a3538f615216331ea90f58 -title: Task 72 +title: Tarefa 72 challengeType: 19 dashedName: task-72 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35429c637c13540c9be80.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35429c637c13540c9be80.md index 4b20a9bd448..b042a10af81 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35429c637c13540c9be80.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35429c637c13540c9be80.md @@ -1,6 +1,6 @@ --- id: 65a35429c637c13540c9be80 -title: Task 73 +title: Tarefa 73 challengeType: 22 dashedName: task-73 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35b30ccc7db44250a72b6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35b30ccc7db44250a72b6.md index ca8b0a42958..200d35dbb8f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35b30ccc7db44250a72b6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35b30ccc7db44250a72b6.md @@ -1,6 +1,6 @@ --- id: 65a35b30ccc7db44250a72b6 -title: Task 74 +title: Tarefa 74 challengeType: 22 dashedName: task-74 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35b8a7dd409452ec99d38.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35b8a7dd409452ec99d38.md index 84aca093d52..17f2d5ffdcd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35b8a7dd409452ec99d38.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35b8a7dd409452ec99d38.md @@ -1,6 +1,6 @@ --- id: 65a35b8a7dd409452ec99d38 -title: Task 75 +title: Tarefa 75 challengeType: 19 dashedName: task-75 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35c036df46e46187c31a3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35c036df46e46187c31a3.md index 9bd217faa04..69857ef07f5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35c036df46e46187c31a3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35c036df46e46187c31a3.md @@ -1,6 +1,6 @@ --- id: 65a35c036df46e46187c31a3 -title: Task 76 +title: Tarefa 76 challengeType: 19 dashedName: task-76 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35c7b9d642f478d6cabba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35c7b9d642f478d6cabba.md index 013e56a7705..4b74801c695 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35c7b9d642f478d6cabba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35c7b9d642f478d6cabba.md @@ -1,6 +1,6 @@ --- id: 65a35c7b9d642f478d6cabba -title: Task 77 +title: Tarefa 77 challengeType: 22 dashedName: task-77 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35cf34eb65f48c24ee97e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35cf34eb65f48c24ee97e.md index 145afc143d8..46b90bc7134 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35cf34eb65f48c24ee97e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35cf34eb65f48c24ee97e.md @@ -1,6 +1,6 @@ --- id: 65a35cf34eb65f48c24ee97e -title: Task 78 +title: Tarefa 78 challengeType: 22 dashedName: task-78 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35d50e8421d49ef07ae09.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35d50e8421d49ef07ae09.md index 56d23563f4a..f2241aa3e40 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35d50e8421d49ef07ae09.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a35d50e8421d49ef07ae09.md @@ -1,6 +1,6 @@ --- id: 65a35d50e8421d49ef07ae09 -title: Task 79 +title: Tarefa 79 challengeType: 19 dashedName: task-79 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a391fe39a2997ea4c0e980.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a391fe39a2997ea4c0e980.md index 36fa55aa8ae..7b8e3e7f86b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a391fe39a2997ea4c0e980.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a391fe39a2997ea4c0e980.md @@ -1,6 +1,6 @@ --- id: 65a391fe39a2997ea4c0e980 -title: Task 80 +title: Tarefa 80 challengeType: 22 dashedName: task-80 --- @@ -25,7 +25,7 @@ Lisa is talking about the joy of working with different people. ### --feedback-- -This word means working together with others. Notice it ends with `-ing`, indicating an action is happening. This word is capitalized. +This word means working together with others. Notice it ends with `-ing`, indicating an action is happening. Esta palavra inicia com letra maiúscula. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a392505010427f98bd8363.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a392505010427f98bd8363.md index d126871e672..5a6d149ebf4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a392505010427f98bd8363.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a392505010427f98bd8363.md @@ -1,6 +1,6 @@ --- id: 65a392505010427f98bd8363 -title: Task 81 +title: Tarefa 81 challengeType: 22 dashedName: task-81 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a392b9f8a69480b1063c86.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a392b9f8a69480b1063c86.md index 19ed243bc7e..0d968c1f243 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a392b9f8a69480b1063c86.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a392b9f8a69480b1063c86.md @@ -1,6 +1,6 @@ --- id: 65a392b9f8a69480b1063c86 -title: Task 82 +title: Tarefa 82 challengeType: 19 dashedName: task-82 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a393115e989381c5dc0c4c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a393115e989381c5dc0c4c.md index 9d83cc465d3..3061f6ab3a3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a393115e989381c5dc0c4c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a393115e989381c5dc0c4c.md @@ -1,6 +1,6 @@ --- id: 65a393115e989381c5dc0c4c -title: Task 83 +title: Tarefa 83 challengeType: 19 dashedName: task-83 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3937c171d9182e6bb4bc5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3937c171d9182e6bb4bc5.md index c9ec667c225..106033e29c6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3937c171d9182e6bb4bc5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3937c171d9182e6bb4bc5.md @@ -1,6 +1,6 @@ --- id: 65a3937c171d9182e6bb4bc5 -title: Task 84 +title: Tarefa 84 challengeType: 22 dashedName: task-84 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3948b46f1b6857a598ff7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3948b46f1b6857a598ff7.md index 566d8c5e7db..8d89bcdbb38 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3948b46f1b6857a598ff7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3948b46f1b6857a598ff7.md @@ -1,6 +1,6 @@ --- id: 65a3948b46f1b6857a598ff7 -title: Task 85 +title: Tarefa 85 challengeType: 22 dashedName: task-85 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39972a4169f0739dd52b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39972a4169f0739dd52b8.md index f5aab15821c..e45ed19378b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39972a4169f0739dd52b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39972a4169f0739dd52b8.md @@ -1,6 +1,6 @@ --- id: 65a39972a4169f0739dd52b8 -title: Task 86 +title: Tarefa 86 challengeType: 19 dashedName: task-86 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39a1ed201f80945939c52.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39a1ed201f80945939c52.md index f285c7e7f50..8f8e8b3ea4f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39a1ed201f80945939c52.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39a1ed201f80945939c52.md @@ -1,6 +1,6 @@ --- id: 65a39a1ed201f80945939c52 -title: Task 87 +title: Tarefa 87 challengeType: 22 dashedName: task-87 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39a8889842f0a4ed3faa4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39a8889842f0a4ed3faa4.md index 689b3e667de..c8abb2c9e53 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39a8889842f0a4ed3faa4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39a8889842f0a4ed3faa4.md @@ -1,6 +1,6 @@ --- id: 65a39a8889842f0a4ed3faa4 -title: Task 88 +title: Tarefa 88 challengeType: 19 dashedName: task-88 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39ae928cfbd0b75cd91c5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39ae928cfbd0b75cd91c5.md index fd8178da8fc..14c401613bc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39ae928cfbd0b75cd91c5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39ae928cfbd0b75cd91c5.md @@ -1,6 +1,6 @@ --- id: 65a39ae928cfbd0b75cd91c5 -title: Task 89 +title: Tarefa 89 challengeType: 22 dashedName: task-89 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39b443701060c7297158e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39b443701060c7297158e.md index a72f4990d84..d92df8cee5f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39b443701060c7297158e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a39b443701060c7297158e.md @@ -1,6 +1,6 @@ --- id: 65a39b443701060c7297158e -title: Task 90 +title: Tarefa 90 challengeType: 19 dashedName: task-90 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3dafe5c945761cef35199.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3dafe5c945761cef35199.md index f0a8796d57b..b815a0051d3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3dafe5c945761cef35199.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a3dafe5c945761cef35199.md @@ -10,9 +10,9 @@ dashedName: dialogue-4-chatting-about-gadgets Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f2c2d1bbdfbe82cb3fdd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f2c2d1bbdfbe82cb3fdd.md index 1c735765ddb..64e928dd1cb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f2c2d1bbdfbe82cb3fdd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f2c2d1bbdfbe82cb3fdd.md @@ -1,6 +1,6 @@ --- id: 65a4f2c2d1bbdfbe82cb3fdd -title: Task 91 +title: Tarefa 91 challengeType: 22 dashedName: task-91 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f3c0e87146c0d01a57f8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f3c0e87146c0d01a57f8.md index 7ddc748e75b..3f8e1061e8e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f3c0e87146c0d01a57f8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f3c0e87146c0d01a57f8.md @@ -1,6 +1,6 @@ --- id: 65a4f3c0e87146c0d01a57f8 -title: Task 92 +title: Tarefa 92 challengeType: 19 dashedName: task-92 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f4aef1c065c3263c561a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f4aef1c065c3263c561a.md index 96ed9a633c9..07eb19ce1b3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f4aef1c065c3263c561a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f4aef1c065c3263c561a.md @@ -1,6 +1,6 @@ --- id: 65a4f4aef1c065c3263c561a -title: Task 93 +title: Tarefa 93 challengeType: 22 dashedName: task-93 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f58e1daa8fc51dafc832.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f58e1daa8fc51dafc832.md index 4f55a749a61..e748fbac2b0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f58e1daa8fc51dafc832.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f58e1daa8fc51dafc832.md @@ -1,6 +1,6 @@ --- id: 65a4f58e1daa8fc51dafc832 -title: Task 94 +title: Tarefa 94 challengeType: 22 dashedName: task-94 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f5fe475701c6697e738b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f5fe475701c6697e738b.md index 9514f27cc60..c39927261fe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f5fe475701c6697e738b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f5fe475701c6697e738b.md @@ -1,6 +1,6 @@ --- id: 65a4f5fe475701c6697e738b -title: Task 95 +title: Tarefa 95 challengeType: 22 dashedName: task-95 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f6ca14fdbfc86041b28a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f6ca14fdbfc86041b28a.md index feadc88525d..882379d7c31 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f6ca14fdbfc86041b28a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f6ca14fdbfc86041b28a.md @@ -1,6 +1,6 @@ --- id: 65a4f6ca14fdbfc86041b28a -title: Task 96 +title: Tarefa 96 challengeType: 22 dashedName: task-96 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f87e991076cbb4efd9bc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f87e991076cbb4efd9bc.md index 2c3332a8708..5e983b12996 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f87e991076cbb4efd9bc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f87e991076cbb4efd9bc.md @@ -1,6 +1,6 @@ --- id: 65a4f87e991076cbb4efd9bc -title: Task 97 +title: Tarefa 97 challengeType: 22 dashedName: task-97 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f90542fdffcd6533424a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f90542fdffcd6533424a.md index 49fbdc264ee..d64b33acfac 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f90542fdffcd6533424a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4f90542fdffcd6533424a.md @@ -1,6 +1,6 @@ --- id: 65a4f90542fdffcd6533424a -title: Task 98 +title: Tarefa 98 challengeType: 19 dashedName: task-98 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4ff8554c98dd601a081d4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4ff8554c98dd601a081d4.md index 2d1e897054c..5625924c71e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4ff8554c98dd601a081d4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a4ff8554c98dd601a081d4.md @@ -1,6 +1,6 @@ --- id: 65a4ff8554c98dd601a081d4 -title: Task 99 +title: Tarefa 99 challengeType: 22 dashedName: task-99 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5000506fe76d745652a33.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5000506fe76d745652a33.md index 81e873d902e..2c48810bca5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5000506fe76d745652a33.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5000506fe76d745652a33.md @@ -1,6 +1,6 @@ --- id: 65a5000506fe76d745652a33 -title: Task 100 +title: Tarefa 100 challengeType: 22 dashedName: task-100 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5010affb10fd99d166200.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5010affb10fd99d166200.md index 1e063e1befc..1189596fc8d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5010affb10fd99d166200.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5010affb10fd99d166200.md @@ -1,6 +1,6 @@ --- id: 65a5010affb10fd99d166200 -title: Task 101 +title: Tarefa 101 challengeType: 19 dashedName: task-101 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a502f63b185addb3117797.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a502f63b185addb3117797.md index 92b3b88cee4..71b8c564cd3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a502f63b185addb3117797.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a502f63b185addb3117797.md @@ -1,6 +1,6 @@ --- id: 65a502f63b185addb3117797 -title: Task 102 +title: Tarefa 102 challengeType: 22 dashedName: task-102 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5034b32a0cfdefbe36156.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5034b32a0cfdefbe36156.md index 6e56479dc8d..c2ce96eb18c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5034b32a0cfdefbe36156.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5034b32a0cfdefbe36156.md @@ -1,6 +1,6 @@ --- id: 65a5034b32a0cfdefbe36156 -title: Task 103 +title: Tarefa 103 challengeType: 19 dashedName: task-103 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a50441ea961ee157da6ff3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a50441ea961ee157da6ff3.md index 93b5cc92a66..d8dffc319ab 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a50441ea961ee157da6ff3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a50441ea961ee157da6ff3.md @@ -1,6 +1,6 @@ --- id: 65a50441ea961ee157da6ff3 -title: Task 104 +title: Tarefa 104 challengeType: 22 dashedName: task-104 --- @@ -41,7 +41,7 @@ This word is used to talk about the current period of time or the present days. ### --feedback-- -This noun refers to remote-controlled flying machines, often used for photography, racing, or recreation. This word is capitalized. +This noun refers to remote-controlled flying machines, often used for photography, racing, or recreation. Esta palavra inicia com letra maiúscula. # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a505250947a4e3777c82ab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a505250947a4e3777c82ab.md index 7bdc1f302f5..570e69a1495 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a505250947a4e3777c82ab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a505250947a4e3777c82ab.md @@ -1,6 +1,6 @@ --- id: 65a505250947a4e3777c82ab -title: Task 105 +title: Tarefa 105 challengeType: 22 dashedName: task-105 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a506572b8d62e47a6f1c08.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a506572b8d62e47a6f1c08.md index 95aa8e526fc..85d5d69595d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a506572b8d62e47a6f1c08.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a506572b8d62e47a6f1c08.md @@ -1,6 +1,6 @@ --- id: 65a506572b8d62e47a6f1c08 -title: Task 106 +title: Tarefa 106 challengeType: 22 dashedName: task-106 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a507474a05a9e869827a34.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a507474a05a9e869827a34.md index f8e77d3a9fe..73ab6c8f97e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a507474a05a9e869827a34.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a507474a05a9e869827a34.md @@ -1,6 +1,6 @@ --- id: 65a507474a05a9e869827a34 -title: Task 107 +title: Tarefa 107 challengeType: 22 dashedName: task-107 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a507ad3caccfe9620e868b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a507ad3caccfe9620e868b.md index cf2a562eb4c..794c08d28cb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a507ad3caccfe9620e868b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a507ad3caccfe9620e868b.md @@ -1,6 +1,6 @@ --- id: 65a507ad3caccfe9620e868b -title: Task 108 +title: Tarefa 108 challengeType: 19 dashedName: task-108 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5080cafc379ea8d382c42.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5080cafc379ea8d382c42.md index 64e3aa577d5..a1617bb38dd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5080cafc379ea8d382c42.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5080cafc379ea8d382c42.md @@ -1,6 +1,6 @@ --- id: 65a5080cafc379ea8d382c42 -title: Task 109 +title: Tarefa 109 challengeType: 22 dashedName: task-109 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a50874fd56ceeb9d8a271f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a50874fd56ceeb9d8a271f.md index 9a5e4ff7dc6..ad6e4a7779f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a50874fd56ceeb9d8a271f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a50874fd56ceeb9d8a271f.md @@ -1,6 +1,6 @@ --- id: 65a50874fd56ceeb9d8a271f -title: Task 110 +title: Tarefa 110 challengeType: 22 dashedName: task-110 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a508d77b492aecb63b06b5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a508d77b492aecb63b06b5.md index c64025643be..8551d4695de 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a508d77b492aecb63b06b5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a508d77b492aecb63b06b5.md @@ -1,6 +1,6 @@ --- id: 65a508d77b492aecb63b06b5 -title: Task 111 +title: Tarefa 111 challengeType: 22 dashedName: task-111 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5312db639d2f8fd4c31a7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5312db639d2f8fd4c31a7.md index fe30597a170..ed701e5699d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5312db639d2f8fd4c31a7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a5312db639d2f8fd4c31a7.md @@ -1,6 +1,6 @@ --- id: 65a5312db639d2f8fd4c31a7 -title: Task 112 +title: Tarefa 112 challengeType: 19 dashedName: task-112 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a533f54a5afeff6c6bb996.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a533f54a5afeff6c6bb996.md index 20eaca5ac90..0142e62cc3b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a533f54a5afeff6c6bb996.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a533f54a5afeff6c6bb996.md @@ -9,9 +9,9 @@ dashedName: dialogue-5-discussing-open-source-software Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a53475949fcc0056b1e479.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a53475949fcc0056b1e479.md index ee5d378ba03..f8a580c386d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a53475949fcc0056b1e479.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a53475949fcc0056b1e479.md @@ -1,6 +1,6 @@ --- id: 65a53475949fcc0056b1e479 -title: Task 113 +title: Tarefa 113 challengeType: 22 dashedName: task-113 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a534f9fdc15f01ed67d860.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a534f9fdc15f01ed67d860.md index 1e409d23632..740ee36843d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a534f9fdc15f01ed67d860.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a534f9fdc15f01ed67d860.md @@ -1,6 +1,6 @@ --- id: 65a534f9fdc15f01ed67d860 -title: Task 114 +title: Tarefa 114 challengeType: 19 dashedName: task-114 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a73f5e3153ba7bff076a3e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a73f5e3153ba7bff076a3e.md index 395d2fa3522..e46f6cd8912 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a73f5e3153ba7bff076a3e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a73f5e3153ba7bff076a3e.md @@ -1,6 +1,6 @@ --- id: 65a73f5e3153ba7bff076a3e -title: Task 115 +title: Tarefa 115 challengeType: 22 dashedName: task-115 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7405cef607d7f856cc5ac.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7405cef607d7f856cc5ac.md index e321ce0b307..021383225b3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7405cef607d7f856cc5ac.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7405cef607d7f856cc5ac.md @@ -1,6 +1,6 @@ --- id: 65a7405cef607d7f856cc5ac -title: Task 116 +title: Tarefa 116 challengeType: 19 dashedName: task-116 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74152da45e881db4f54dc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74152da45e881db4f54dc.md index 6a2c024d0c1..2b4d8417f2d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74152da45e881db4f54dc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74152da45e881db4f54dc.md @@ -1,6 +1,6 @@ --- id: 65a74152da45e881db4f54dc -title: Task 117 +title: Tarefa 117 challengeType: 22 dashedName: task-117 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a742367d9803841b422795.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a742367d9803841b422795.md index 3917f0f08f3..74988c9b409 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a742367d9803841b422795.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a742367d9803841b422795.md @@ -1,6 +1,6 @@ --- id: 65a742367d9803841b422795 -title: Task 118 +title: Tarefa 118 challengeType: 19 dashedName: task-118 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74339f74217867ec2eb5e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74339f74217867ec2eb5e.md index a41f1bfc8cb..6669db923c0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74339f74217867ec2eb5e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74339f74217867ec2eb5e.md @@ -1,6 +1,6 @@ --- id: 65a74339f74217867ec2eb5e -title: Task 119 +title: Tarefa 119 challengeType: 22 dashedName: task-119 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a743f03d6688884acb6cb2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a743f03d6688884acb6cb2.md index 64acf0261ac..d53f17e33ed 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a743f03d6688884acb6cb2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a743f03d6688884acb6cb2.md @@ -1,6 +1,6 @@ --- id: 65a743f03d6688884acb6cb2 -title: Task 120 +title: Tarefa 120 challengeType: 22 dashedName: task-120 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7455f319ba98b5885cb6a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7455f319ba98b5885cb6a.md index a2ad29fdb26..f2965744ecb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7455f319ba98b5885cb6a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7455f319ba98b5885cb6a.md @@ -1,6 +1,6 @@ --- id: 65a7455f319ba98b5885cb6a -title: Task 121 +title: Tarefa 121 challengeType: 19 dashedName: task-121 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a747a9502c8f8fbcd5dd13.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a747a9502c8f8fbcd5dd13.md index 52145efc9dc..1adbe8f60c0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a747a9502c8f8fbcd5dd13.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a747a9502c8f8fbcd5dd13.md @@ -1,6 +1,6 @@ --- id: 65a747a9502c8f8fbcd5dd13 -title: Task 122 +title: Tarefa 122 challengeType: 22 dashedName: task-122 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a749262ad6c093d2dc8bb1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a749262ad6c093d2dc8bb1.md index 10d1d55dd1f..aec8a7ba9ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a749262ad6c093d2dc8bb1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a749262ad6c093d2dc8bb1.md @@ -1,6 +1,6 @@ --- id: 65a749262ad6c093d2dc8bb1 -title: Task 123 +title: Tarefa 123 challengeType: 22 dashedName: task-123 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74ac67e7fbd97ef282812.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74ac67e7fbd97ef282812.md index 4920280d317..786611b8275 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74ac67e7fbd97ef282812.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74ac67e7fbd97ef282812.md @@ -1,6 +1,6 @@ --- id: 65a74ac67e7fbd97ef282812 -title: Task 124 +title: Tarefa 124 challengeType: 22 dashedName: task-124 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74b5ca72a0c9a0b8e5e99.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74b5ca72a0c9a0b8e5e99.md index feb206c8d3b..ae20478acb7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74b5ca72a0c9a0b8e5e99.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74b5ca72a0c9a0b8e5e99.md @@ -1,6 +1,6 @@ --- id: 65a74b5ca72a0c9a0b8e5e99 -title: Task 125 +title: Tarefa 125 challengeType: 22 dashedName: task-125 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74c672ff11d9c210a8732.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74c672ff11d9c210a8732.md index b1b1c1ca42c..6666aa44bf4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74c672ff11d9c210a8732.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74c672ff11d9c210a8732.md @@ -1,6 +1,6 @@ --- id: 65a74c672ff11d9c210a8732 -title: Task 126 +title: Tarefa 126 challengeType: 19 dashedName: task-126 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74cd01bc1b59d99c053a8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74cd01bc1b59d99c053a8.md index e6c5fe030c7..573261b538e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74cd01bc1b59d99c053a8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74cd01bc1b59d99c053a8.md @@ -1,6 +1,6 @@ --- id: 65a74cd01bc1b59d99c053a8 -title: Task 127 +title: Tarefa 127 challengeType: 22 dashedName: task-127 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74dae1b3acd9fad3a068e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74dae1b3acd9fad3a068e.md index e05f1982063..ecdd35e6df8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74dae1b3acd9fad3a068e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a74dae1b3acd9fad3a068e.md @@ -1,6 +1,6 @@ --- id: 65a74dae1b3acd9fad3a068e -title: Task 128 +title: Tarefa 128 challengeType: 22 dashedName: task-128 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a750a82c2476a6305bf621.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a750a82c2476a6305bf621.md index 5d15ffd7545..c574a92a94c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a750a82c2476a6305bf621.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a750a82c2476a6305bf621.md @@ -1,6 +1,6 @@ --- id: 65a750a82c2476a6305bf621 -title: Task 129 +title: Tarefa 129 challengeType: 22 dashedName: task-129 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a751927c4b80a86e6fb1c9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a751927c4b80a86e6fb1c9.md index 045d8463245..fd98b1e0b43 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a751927c4b80a86e6fb1c9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a751927c4b80a86e6fb1c9.md @@ -1,6 +1,6 @@ --- id: 65a751927c4b80a86e6fb1c9 -title: Task 130 +title: Tarefa 130 challengeType: 19 dashedName: task-130 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a788ea40f8e6b77d3cc64f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a788ea40f8e6b77d3cc64f.md index 763fa02b646..a7a1dd7b12a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a788ea40f8e6b77d3cc64f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a788ea40f8e6b77d3cc64f.md @@ -1,6 +1,6 @@ --- id: 65a788ea40f8e6b77d3cc64f -title: Task 131 +title: Tarefa 131 challengeType: 22 dashedName: task-131 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78dadbf033cc11554453d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78dadbf033cc11554453d.md index a187bb8b293..2072640c55f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78dadbf033cc11554453d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78dadbf033cc11554453d.md @@ -1,6 +1,6 @@ --- id: 65a78dadbf033cc11554453d -title: Task 132 +title: Tarefa 132 challengeType: 22 dashedName: task-132 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78e7b5fb9a0c38757cc3e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78e7b5fb9a0c38757cc3e.md index ca97fa188f9..c7d8716caa1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78e7b5fb9a0c38757cc3e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78e7b5fb9a0c38757cc3e.md @@ -1,6 +1,6 @@ --- id: 65a78e7b5fb9a0c38757cc3e -title: Task 133 +title: Tarefa 133 challengeType: 19 dashedName: task-133 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78f35fab096c5694079db.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78f35fab096c5694079db.md index baadc6b07e8..5fa7934b12b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78f35fab096c5694079db.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a78f35fab096c5694079db.md @@ -1,6 +1,6 @@ --- id: 65a78f35fab096c5694079db -title: Task 134 +title: Tarefa 134 challengeType: 22 dashedName: task-134 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7917a28aa16ca5a832593.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7917a28aa16ca5a832593.md index 15c83340f6f..abca18970c4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7917a28aa16ca5a832593.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7917a28aa16ca5a832593.md @@ -1,6 +1,6 @@ --- id: 65a7917a28aa16ca5a832593 -title: Task 135 +title: Tarefa 135 challengeType: 22 dashedName: task-135 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a792163bf705cb7b6eb255.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a792163bf705cb7b6eb255.md index 7718697bd96..576b4fd9c23 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a792163bf705cb7b6eb255.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a792163bf705cb7b6eb255.md @@ -1,6 +1,6 @@ --- id: 65a792163bf705cb7b6eb255 -title: Task 137 +title: Tarefa 137 challengeType: 22 dashedName: task-137 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7957981392ed32523e628.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7957981392ed32523e628.md index d6ae5f89d89..90774908738 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7957981392ed32523e628.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7957981392ed32523e628.md @@ -1,6 +1,6 @@ --- id: 65a7957981392ed32523e628 -title: Task 138 +title: Tarefa 138 challengeType: 22 dashedName: task-138 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a79822981b3fd86a5cb03b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a79822981b3fd86a5cb03b.md index abc9cf2415f..6ad5a0c39cd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a79822981b3fd86a5cb03b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a79822981b3fd86a5cb03b.md @@ -1,6 +1,6 @@ --- id: 65a79822981b3fd86a5cb03b -title: Task 139 +title: Tarefa 139 challengeType: 19 dashedName: task-139 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7996c848275dbf2083044.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7996c848275dbf2083044.md index 87c40eaf830..d8564c98950 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7996c848275dbf2083044.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a7996c848275dbf2083044.md @@ -1,6 +1,6 @@ --- id: 65a7996c848275dbf2083044 -title: Task 140 +title: Tarefa 140 challengeType: 22 dashedName: task-140 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a79a08cb0594ddd408e4db.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a79a08cb0594ddd408e4db.md index 52d0740b1db..1e2cf724024 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a79a08cb0594ddd408e4db.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a79a08cb0594ddd408e4db.md @@ -1,6 +1,6 @@ --- id: 65a79a08cb0594ddd408e4db -title: Task 141 +title: Tarefa 141 challengeType: 19 dashedName: task-141 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65ca7d68954aca359009f790.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65ca7d68954aca359009f790.md index 05dc28f6ddc..94621365b5b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65ca7d68954aca359009f790.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65ca7d68954aca359009f790.md @@ -1,6 +1,6 @@ --- id: 65ca7d68954aca359009f790 -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65ca82211643fd3f990788dd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65ca82211643fd3f990788dd.md index ef6b246a2e4..5a5f9b64ab0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65ca82211643fd3f990788dd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65ca82211643fd3f990788dd.md @@ -1,6 +1,6 @@ --- id: 65ca82211643fd3f990788dd -title: Task 2 +title: Tarefa 2 challengeType: 22 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65cb916a2d3d9851f81601b2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65cb916a2d3d9851f81601b2.md index 050241fa5e6..b0a21f09bf4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65cb916a2d3d9851f81601b2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65cb916a2d3d9851f81601b2.md @@ -1,6 +1,6 @@ --- id: 65cb916a2d3d9851f81601b2 -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65cb95e5ff03d253dcf867af.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65cb95e5ff03d253dcf867af.md index 90a6bbe82b3..f858c523d48 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65cb95e5ff03d253dcf867af.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65cb95e5ff03d253dcf867af.md @@ -1,6 +1,6 @@ --- id: 65cb95e5ff03d253dcf867af -title: Task 4 +title: Tarefa 4 challengeType: 19 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc8beb00559e5a183ab2de.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc8beb00559e5a183ab2de.md index f725307b614..545bc6a2d17 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc8beb00559e5a183ab2de.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc8beb00559e5a183ab2de.md @@ -1,6 +1,6 @@ --- id: 65fc8beb00559e5a183ab2de -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc8d3b0133d45abd7a179b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc8d3b0133d45abd7a179b.md index 2522ee2b5e1..3dd4bed4629 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc8d3b0133d45abd7a179b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc8d3b0133d45abd7a179b.md @@ -1,6 +1,6 @@ --- id: 65fc8d3b0133d45abd7a179b -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc92b127e3af5bcab2a449.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc92b127e3af5bcab2a449.md index ab0e4646869..4bad7c81b12 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc92b127e3af5bcab2a449.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc92b127e3af5bcab2a449.md @@ -1,6 +1,6 @@ --- id: 65fc92b127e3af5bcab2a449 -title: Task 23 +title: Tarefa 23 challengeType: 22 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc932d577d505c57e9551a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc932d577d505c57e9551a.md index 8795bdf6d10..e57b87a0f59 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc932d577d505c57e9551a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc932d577d505c57e9551a.md @@ -1,6 +1,6 @@ --- id: 65fc932d577d505c57e9551a -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9417738a7e5cd2bf317e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9417738a7e5cd2bf317e.md index b801e7efce9..87aba827b7b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9417738a7e5cd2bf317e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9417738a7e5cd2bf317e.md @@ -1,6 +1,6 @@ --- id: 65fc9417738a7e5cd2bf317e -title: Task 25 +title: Tarefa 25 challengeType: 22 dashedName: task-25 --- @@ -23,7 +23,7 @@ Listen and fill in the missing words. ### --feedback-- -This word means working together with others to achieve a goal. This word is capitalized. +This word means working together with others to achieve a goal. Esta palavra inicia com letra maiúscula. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc94ba65ed765d55195bc0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc94ba65ed765d55195bc0.md index 75c938c595f..201c76e0799 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc94ba65ed765d55195bc0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc94ba65ed765d55195bc0.md @@ -1,6 +1,6 @@ --- id: 65fc94ba65ed765d55195bc0 -title: Task 27 +title: Tarefa 27 challengeType: 22 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc989e09a9226b9b51dc87.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc989e09a9226b9b51dc87.md index 89a97ac83d7..b26416f85c7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc989e09a9226b9b51dc87.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc989e09a9226b9b51dc87.md @@ -1,6 +1,6 @@ --- id: 65fc989e09a9226b9b51dc87 -title: Task 29 +title: Tarefa 29 challengeType: 22 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc990ec22b3e6c0345c725.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc990ec22b3e6c0345c725.md index 02733f0f66c..71d01cdf345 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc990ec22b3e6c0345c725.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc990ec22b3e6c0345c725.md @@ -1,6 +1,6 @@ --- id: 65fc990ec22b3e6c0345c725 -title: Task 30 +title: Tarefa 30 challengeType: 19 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9a04edb4d56c8390bc3a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9a04edb4d56c8390bc3a.md index 47e9d5633b4..18efd1f38b1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9a04edb4d56c8390bc3a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9a04edb4d56c8390bc3a.md @@ -1,6 +1,6 @@ --- id: 65fc9a04edb4d56c8390bc3a -title: Task 31 +title: Tarefa 31 challengeType: 22 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9ab3635ebc6d167f86e6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9ab3635ebc6d167f86e6.md index ce9ced73581..19bbe5f9ad5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9ab3635ebc6d167f86e6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9ab3635ebc6d167f86e6.md @@ -1,6 +1,6 @@ --- id: 65fc9ab3635ebc6d167f86e6 -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9b4c8577c76d76724227.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9b4c8577c76d76724227.md index 7c44898f823..8972602b8a9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9b4c8577c76d76724227.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9b4c8577c76d76724227.md @@ -1,6 +1,6 @@ --- id: 65fc9b4c8577c76d76724227 -title: Task 34 +title: Tarefa 34 challengeType: 22 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9be86f2ae26ddcdf0bb3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9be86f2ae26ddcdf0bb3.md index 17d79cd22ec..7a790f42429 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9be86f2ae26ddcdf0bb3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9be86f2ae26ddcdf0bb3.md @@ -1,6 +1,6 @@ --- id: 65fc9be86f2ae26ddcdf0bb3 -title: Task 36 +title: Tarefa 36 challengeType: 19 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9c5db0a80e6e3d3cfce5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9c5db0a80e6e3d3cfce5.md index 39df7aceed5..b94688fe453 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9c5db0a80e6e3d3cfce5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65fc9c5db0a80e6e3d3cfce5.md @@ -1,6 +1,6 @@ --- id: 65fc9c5db0a80e6e3d3cfce5 -title: Task 37 +title: Tarefa 37 challengeType: 22 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6602ec717db2bc1105700d40.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6602ec717db2bc1105700d40.md index b1bcee11103..d862af1ec02 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6602ec717db2bc1105700d40.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/6602ec717db2bc1105700d40.md @@ -1,6 +1,6 @@ --- id: 6602ec717db2bc1105700d40 -title: Task 136 +title: Tarefa 136 challengeType: 19 dashedName: task-136 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index d13585d0e6c..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/655c131291cbcb8febf21e64.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/655c131291cbcb8febf21e64.md index d2142b456f9..97f71b84b7a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/655c131291cbcb8febf21e64.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/655c131291cbcb8febf21e64.md @@ -9,9 +9,9 @@ dashedName: dialogue-1-discussing-issues-on-github Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b732c8110ff8936f016de.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b732c8110ff8936f016de.md index b1dfebc0adf..1baf60043f7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b732c8110ff8936f016de.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b732c8110ff8936f016de.md @@ -1,6 +1,6 @@ --- id: 656b732c8110ff8936f016de -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b74ab2a075f8a05c66f41.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b74ab2a075f8a05c66f41.md index cc0fd50a8be..6f023b57d15 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b74ab2a075f8a05c66f41.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b74ab2a075f8a05c66f41.md @@ -1,6 +1,6 @@ --- id: 656b74ab2a075f8a05c66f41 -title: Task 2 +title: Tarefa 2 challengeType: 22 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b757d8294618a5eefd710.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b757d8294618a5eefd710.md index 8c775b5ca36..0d6d1f2aa1c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b757d8294618a5eefd710.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656b757d8294618a5eefd710.md @@ -1,6 +1,6 @@ --- id: 656b757d8294618a5eefd710 -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbba66c53330f4316fd9f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbba66c53330f4316fd9f.md index daae2ad856c..1177f68798c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbba66c53330f4316fd9f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbba66c53330f4316fd9f.md @@ -1,6 +1,6 @@ --- id: 656bbba66c53330f4316fd9f -title: Task 4 +title: Tarefa 4 challengeType: 22 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbbe6d57609104b152625.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbbe6d57609104b152625.md index 04ad741c78f..d097156f5b8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbbe6d57609104b152625.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbbe6d57609104b152625.md @@ -1,6 +1,6 @@ --- id: 656bbbe6d57609104b152625 -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbcc8333087117b4d9153.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbcc8333087117b4d9153.md index 85f94c20c54..c17a634c398 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbcc8333087117b4d9153.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbcc8333087117b4d9153.md @@ -1,6 +1,6 @@ --- id: 656bbcc8333087117b4d9153 -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbd3dea715a11ce02b670.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbd3dea715a11ce02b670.md index 23d70e5934c..ace821ce8d8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbd3dea715a11ce02b670.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbd3dea715a11ce02b670.md @@ -1,6 +1,6 @@ --- id: 656bbd3dea715a11ce02b670 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbded100497126ccc6e5d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbded100497126ccc6e5d.md index aa8e0a00f62..0ab943786ae 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbded100497126ccc6e5d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbded100497126ccc6e5d.md @@ -1,6 +1,6 @@ --- id: 656bbded100497126ccc6e5d -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbe4c45fc9512d58ba0e2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbe4c45fc9512d58ba0e2.md index a44a84c7a81..c4a79cc3c83 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbe4c45fc9512d58ba0e2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbe4c45fc9512d58ba0e2.md @@ -1,6 +1,6 @@ --- id: 656bbe4c45fc9512d58ba0e2 -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbeb152c95913465476e3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbeb152c95913465476e3.md index dbd5a2a28f0..8453cf924d4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbeb152c95913465476e3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbeb152c95913465476e3.md @@ -1,6 +1,6 @@ --- id: 656bbeb152c95913465476e3 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbf3a1b344e13bc7fa12c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbf3a1b344e13bc7fa12c.md index b54fe7a1dcc..5a3d14056cc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbf3a1b344e13bc7fa12c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbf3a1b344e13bc7fa12c.md @@ -1,6 +1,6 @@ --- id: 656bbf3a1b344e13bc7fa12c -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbfaf6cbc3f1418acca3c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbfaf6cbc3f1418acca3c.md index f3bd5c10dff..f0eadcada9a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbfaf6cbc3f1418acca3c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbfaf6cbc3f1418acca3c.md @@ -1,6 +1,6 @@ --- id: 656bbfaf6cbc3f1418acca3c -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbfedb30479145d464e37.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbfedb30479145d464e37.md index 71efcad9bf8..ce5aa3303f7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbfedb30479145d464e37.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bbfedb30479145d464e37.md @@ -1,6 +1,6 @@ --- id: 656bbfedb30479145d464e37 -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc028a62f3a149ed36971.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc028a62f3a149ed36971.md index a0ab9c546a8..24b1973d082 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc028a62f3a149ed36971.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc028a62f3a149ed36971.md @@ -1,6 +1,6 @@ --- id: 656bc028a62f3a149ed36971 -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc05be141d914dcc812c3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc05be141d914dcc812c3.md index 26805592bbb..0af3e079f18 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc05be141d914dcc812c3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc05be141d914dcc812c3.md @@ -1,6 +1,6 @@ --- id: 656bc05be141d914dcc812c3 -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc094df5acf151fb264d8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc094df5acf151fb264d8.md index d139c5c82d1..dd5b3a9fc3c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc094df5acf151fb264d8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc094df5acf151fb264d8.md @@ -1,6 +1,6 @@ --- id: 656bc094df5acf151fb264d8 -title: Task 16 +title: Tarefa 16 challengeType: 22 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc0bd4a112e155c589e33.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc0bd4a112e155c589e33.md index d0832ec6afe..d2cc6dd4852 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc0bd4a112e155c589e33.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc0bd4a112e155c589e33.md @@ -1,6 +1,6 @@ --- id: 656bc0bd4a112e155c589e33 -title: Task 17 +title: Tarefa 17 challengeType: 19 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc0f87049dc159ce63187.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc0f87049dc159ce63187.md index 3e1bf7d3c29..0aa4e22f7d6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc0f87049dc159ce63187.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc0f87049dc159ce63187.md @@ -1,6 +1,6 @@ --- id: 656bc0f87049dc159ce63187 -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc15142eeeb15e31d258b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc15142eeeb15e31d258b.md index a66a777325f..a45b7ad4bd6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc15142eeeb15e31d258b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc15142eeeb15e31d258b.md @@ -1,6 +1,6 @@ --- id: 656bc15142eeeb15e31d258b -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc3bd0a323317d4117a49.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc3bd0a323317d4117a49.md index 907465f2fac..df61fe76329 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc3bd0a323317d4117a49.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc3bd0a323317d4117a49.md @@ -1,6 +1,6 @@ --- id: 656bc3bd0a323317d4117a49 -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- @@ -9,7 +9,7 @@ dashedName: task-20 The past continuous tense is used to talk about actions that were ongoing in the past. -It is formed using `was` for the pronouns `I`, `he`, `she`, `it`, or `were` for the pronouns `you`, `we`, `they` followed by a verb ending in `-ing`. For example: +It is formed using `was` for the pronouns `I`, `he`, `she`, `it`, or `were` for the pronouns `you`, `we`, `they` followed by a verb ending in `-ing`. Por exemplo: `I was reading` means the work was happening over a period of time in the past. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc4c430704c19121c5eb4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc4c430704c19121c5eb4.md index 2bae50b1bee..81c35355635 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc4c430704c19121c5eb4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc4c430704c19121c5eb4.md @@ -1,6 +1,6 @@ --- id: 656bc4c430704c19121c5eb4 -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc54c7a049d197017b9c7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc54c7a049d197017b9c7.md index df90e7b5a35..09e926de8c0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc54c7a049d197017b9c7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc54c7a049d197017b9c7.md @@ -1,6 +1,6 @@ --- id: 656bc54c7a049d197017b9c7 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc5a71b33ae19ad65166a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc5a71b33ae19ad65166a.md index 2a14bd2170f..564ddada6cb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc5a71b33ae19ad65166a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc5a71b33ae19ad65166a.md @@ -1,6 +1,6 @@ --- id: 656bc5a71b33ae19ad65166a -title: Task 23 +title: Tarefa 23 challengeType: 22 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc669dbd6561a22060cf0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc669dbd6561a22060cf0.md index 744f88721b6..d765b6688eb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc669dbd6561a22060cf0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc669dbd6561a22060cf0.md @@ -1,6 +1,6 @@ --- id: 656bc669dbd6561a22060cf0 -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc75be35fb11a7c27a788.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc75be35fb11a7c27a788.md index d8ab65c746d..53f19f9288b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc75be35fb11a7c27a788.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc75be35fb11a7c27a788.md @@ -1,13 +1,13 @@ --- id: 656bc75be35fb11a7c27a788 -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 --- # --description-- -The phrase `Got it` is often used in conversation to indicate that someone has understood something. It's a casual and quick way to acknowledge that you have received and comprehended the information. For example: +The phrase `Got it` is often used in conversation to indicate that someone has understood something. It's a casual and quick way to acknowledge that you have received and comprehended the information. Por exemplo: Lucy: `You need to finish the report by tomorrow.` Bob: `Got it!` @@ -33,7 +33,7 @@ I will think about it --- -I don't know +Eu não sei ### --feedback-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc7f08edd541afdd87231.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc7f08edd541afdd87231.md index d5a3bdd7e88..2c9b6d593d0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc7f08edd541afdd87231.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc7f08edd541afdd87231.md @@ -1,6 +1,6 @@ --- id: 656bc7f08edd541afdd87231 -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc8f4928b351b8a6c4d53.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc8f4928b351b8a6c4d53.md index d9eaa9b28b6..646866b8113 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc8f4928b351b8a6c4d53.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bc8f4928b351b8a6c4d53.md @@ -1,6 +1,6 @@ --- id: 656bc8f4928b351b8a6c4d53 -title: Task 27 +title: Tarefa 27 challengeType: 22 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bcaea19405d1c6f2accb9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bcaea19405d1c6f2accb9.md index ce673c81fa9..91abfe78e70 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bcaea19405d1c6f2accb9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bcaea19405d1c6f2accb9.md @@ -1,6 +1,6 @@ --- id: 656bcaea19405d1c6f2accb9 -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd6dde3a62c205cb41b2d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd6dde3a62c205cb41b2d.md index 8d72fc15b09..4d7a2f5c664 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd6dde3a62c205cb41b2d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd6dde3a62c205cb41b2d.md @@ -9,9 +9,9 @@ dashedName: dialogue-2-talking-about-pull-requests Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd701970c6c20a9c89b0f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd701970c6c20a9c89b0f.md index 531d32e9734..846b7c071fe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd701970c6c20a9c89b0f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd701970c6c20a9c89b0f.md @@ -1,6 +1,6 @@ --- id: 656bd701970c6c20a9c89b0f -title: Task 29 +title: Tarefa 29 challengeType: 22 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd7723e1e4c21039f5916.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd7723e1e4c21039f5916.md index 2ff2a3a5210..8373ead54df 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd7723e1e4c21039f5916.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd7723e1e4c21039f5916.md @@ -1,6 +1,6 @@ --- id: 656bd7723e1e4c21039f5916 -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd80d58dd31216af64ddf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd80d58dd31216af64ddf.md index 64c5ab937f5..cc8bf905aef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd80d58dd31216af64ddf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd80d58dd31216af64ddf.md @@ -1,6 +1,6 @@ --- id: 656bd80d58dd31216af64ddf -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd968e52c34220164de8d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd968e52c34220164de8d.md index d3f3acc1d8b..92c4aaea4dc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd968e52c34220164de8d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/656bd968e52c34220164de8d.md @@ -1,6 +1,6 @@ --- id: 656bd968e52c34220164de8d -title: Task 32 +title: Tarefa 32 challengeType: 19 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84bec88772eaff6e56679.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84bec88772eaff6e56679.md index 77a12485181..d8e76a9a2c1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84bec88772eaff6e56679.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84bec88772eaff6e56679.md @@ -1,6 +1,6 @@ --- id: 65a84bec88772eaff6e56679 -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84dad1595bbbc2e9cd895.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84dad1595bbbc2e9cd895.md index 64ae869d125..50c4d756cae 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84dad1595bbbc2e9cd895.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84dad1595bbbc2e9cd895.md @@ -1,6 +1,6 @@ --- id: 65a84dad1595bbbc2e9cd895 -title: Task 34 +title: Tarefa 34 challengeType: 22 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84e922382a7bd112057ad.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84e922382a7bd112057ad.md index 06228a5193b..819cce60a88 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84e922382a7bd112057ad.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84e922382a7bd112057ad.md @@ -1,6 +1,6 @@ --- id: 65a84e922382a7bd112057ad -title: Task 35 +title: Tarefa 35 challengeType: 19 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84f2370686dbda3e53aff.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84f2370686dbda3e53aff.md index 99d3b05d059..215c193b2bb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84f2370686dbda3e53aff.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a84f2370686dbda3e53aff.md @@ -1,6 +1,6 @@ --- id: 65a84f2370686dbda3e53aff -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a85090914872be8ca97793.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a85090914872be8ca97793.md index 3ebe4b7f667..7cd38c1cc6f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a85090914872be8ca97793.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a85090914872be8ca97793.md @@ -1,6 +1,6 @@ --- id: 65a85090914872be8ca97793 -title: Task 37 +title: Tarefa 37 challengeType: 19 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a851a6389e6cbf2c2cf158.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a851a6389e6cbf2c2cf158.md index 1579eabf233..088df04f929 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a851a6389e6cbf2c2cf158.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a851a6389e6cbf2c2cf158.md @@ -1,6 +1,6 @@ --- id: 65a851a6389e6cbf2c2cf158 -title: Task 38 +title: Tarefa 38 challengeType: 22 dashedName: task-38 --- @@ -9,7 +9,7 @@ dashedName: task-38 # --description-- -`To investigate` means to carefully examine something, and `to be related to` means to be connected or associated with something. For example: +`To investigate` means to carefully examine something, and `to be related to` means to be connected or associated with something. Por exemplo: `He is investigating the error in the program` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a853b498eb87c035f6da13.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a853b498eb87c035f6da13.md index 2a521ec9ff8..ee7908f06bc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a853b498eb87c035f6da13.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a853b498eb87c035f6da13.md @@ -1,6 +1,6 @@ --- id: 65a853b498eb87c035f6da13 -title: Task 39 +title: Tarefa 39 challengeType: 19 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a85418ea38cdc0a334dab2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a85418ea38cdc0a334dab2.md index 78aa33482a9..c041c4b673b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a85418ea38cdc0a334dab2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a85418ea38cdc0a334dab2.md @@ -1,6 +1,6 @@ --- id: 65a85418ea38cdc0a334dab2 -title: Task 40 +title: Tarefa 40 challengeType: 22 dashedName: task-40 --- @@ -9,7 +9,7 @@ dashedName: task-40 # --description-- -`To roll back` means going back to an earlier state or version of something. For example: +`To roll back` means going back to an earlier state or version of something. Por exemplo: `If the new app is not working, try rolling back to the old version.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a9457392dfd7d564bc940e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a9457392dfd7d564bc940e.md index 9a599c40fc1..25141728fa2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a9457392dfd7d564bc940e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65a9457392dfd7d564bc940e.md @@ -1,6 +1,6 @@ --- id: 65a9457392dfd7d564bc940e -title: Task 41 +title: Tarefa 41 challengeType: 19 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28add2c939e25b1d9b0e1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28add2c939e25b1d9b0e1.md index 790d9949d91..215352e9978 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28add2c939e25b1d9b0e1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28add2c939e25b1d9b0e1.md @@ -1,6 +1,6 @@ --- id: 65b28add2c939e25b1d9b0e1 -title: Task 42 +title: Tarefa 42 challengeType: 19 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28bbe803df52c4e76dd15.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28bbe803df52c4e76dd15.md index 1410c11a4d4..cfd79fcf9a8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28bbe803df52c4e76dd15.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28bbe803df52c4e76dd15.md @@ -1,6 +1,6 @@ --- id: 65b28bbe803df52c4e76dd15 -title: Task 43 +title: Tarefa 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28d5f4b4c502d2b7917e1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28d5f4b4c502d2b7917e1.md index 67cf318bd14..357ec2a9882 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28d5f4b4c502d2b7917e1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28d5f4b4c502d2b7917e1.md @@ -1,6 +1,6 @@ --- id: 65b28d5f4b4c502d2b7917e1 -title: Task 44 +title: Tarefa 44 challengeType: 19 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28e008537c42da87ace01.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28e008537c42da87ace01.md index 7f003d3260b..4f98f3a63cf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28e008537c42da87ace01.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28e008537c42da87ace01.md @@ -1,6 +1,6 @@ --- id: 65b28e008537c42da87ace01 -title: Task 45 +title: Tarefa 45 challengeType: 19 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28ee9c5a5972e8bb2a5f3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28ee9c5a5972e8bb2a5f3.md index 7093d209673..6c6c3e03833 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28ee9c5a5972e8bb2a5f3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28ee9c5a5972e8bb2a5f3.md @@ -1,13 +1,13 @@ --- id: 65b28ee9c5a5972e8bb2a5f3 -title: Task 46 +title: Tarefa 46 challengeType: 19 dashedName: task-46 --- # --description-- -`Debugging` is a common term in programming. It means finding and fixing problems or `bugs` in software. For example: +`Debugging` is a common term in programming. It means finding and fixing problems or `bugs` in software. Por exemplo: `The programmer spent the morning debugging the new app.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28f840a0d962f2240e800.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28f840a0d962f2240e800.md index 050a480a9aa..92a1b3a07f6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28f840a0d962f2240e800.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b28f840a0d962f2240e800.md @@ -1,6 +1,6 @@ --- id: 65b28f840a0d962f2240e800 -title: Task 47 +title: Tarefa 47 challengeType: 22 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2af1545e34334b7573de9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2af1545e34334b7573de9.md index 386921d646c..e5849c2dc52 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2af1545e34334b7573de9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2af1545e34334b7573de9.md @@ -1,6 +1,6 @@ --- id: 65b2af1545e34334b7573de9 -title: Task 48 +title: Tarefa 48 challengeType: 19 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2af807f713c351c5b9435.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2af807f713c351c5b9435.md index 69ff0a939ad..10ff518cf1f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2af807f713c351c5b9435.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2af807f713c351c5b9435.md @@ -1,6 +1,6 @@ --- id: 65b2af807f713c351c5b9435 -title: Task 49 +title: Tarefa 49 challengeType: 22 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b0e08ec66535fa8542eb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b0e08ec66535fa8542eb.md index 761dcd3408b..eaeb224a5eb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b0e08ec66535fa8542eb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b0e08ec66535fa8542eb.md @@ -9,9 +9,9 @@ dashedName: dialogue-3-talking-about-debugging Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b181cb9b2136e833a17a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b181cb9b2136e833a17a.md index acf7ff21fa5..2d67e8686a4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b181cb9b2136e833a17a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b181cb9b2136e833a17a.md @@ -1,6 +1,6 @@ --- id: 65b2b181cb9b2136e833a17a -title: Task 50 +title: Tarefa 50 challengeType: 22 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b2781c59e837a5e0beb2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b2781c59e837a5e0beb2.md index 08bee0f7473..292e0b7a18b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b2781c59e837a5e0beb2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b2781c59e837a5e0beb2.md @@ -1,6 +1,6 @@ --- id: 65b2b2781c59e837a5e0beb2 -title: Task 51 +title: Tarefa 51 challengeType: 19 dashedName: task-51 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b383fb6406386dab3499.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b383fb6406386dab3499.md index a4ff040254d..ccc862f96f8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b383fb6406386dab3499.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b383fb6406386dab3499.md @@ -1,6 +1,6 @@ --- id: 65b2b383fb6406386dab3499 -title: Task 52 +title: Tarefa 52 challengeType: 19 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b3ea62a86838c216db73.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b3ea62a86838c216db73.md index 583bc8549eb..8f4b2ac923a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b3ea62a86838c216db73.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b3ea62a86838c216db73.md @@ -1,6 +1,6 @@ --- id: 65b2b3ea62a86838c216db73 -title: Task 53 +title: Tarefa 53 challengeType: 22 dashedName: task-53 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b54bf7897c3954e20971.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b54bf7897c3954e20971.md index 1472c4f0a54..12da8b8ecc6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b54bf7897c3954e20971.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b54bf7897c3954e20971.md @@ -1,6 +1,6 @@ --- id: 65b2b54bf7897c3954e20971 -title: Task 54 +title: Tarefa 54 challengeType: 19 dashedName: task-54 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b6255fe7973a8bf80902.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b6255fe7973a8bf80902.md index 4308776ef1a..f08cafa69c4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b6255fe7973a8bf80902.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b6255fe7973a8bf80902.md @@ -1,6 +1,6 @@ --- id: 65b2b6255fe7973a8bf80902 -title: Task 55 +title: Tarefa 55 challengeType: 19 dashedName: task-55 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b6aef88e363af2749620.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b6aef88e363af2749620.md index 56392dc84b4..e99acde8d82 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b6aef88e363af2749620.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b6aef88e363af2749620.md @@ -1,6 +1,6 @@ --- id: 65b2b6aef88e363af2749620 -title: Task 56 +title: Tarefa 56 challengeType: 19 dashedName: task-56 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b74cb90a3d3b5d1acc48.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b74cb90a3d3b5d1acc48.md index d47efad57dd..fcaa6d4a98c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b74cb90a3d3b5d1acc48.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b74cb90a3d3b5d1acc48.md @@ -1,6 +1,6 @@ --- id: 65b2b74cb90a3d3b5d1acc48 -title: Task 57 +title: Tarefa 57 challengeType: 19 dashedName: task-57 --- @@ -9,7 +9,7 @@ dashedName: task-57 In a professional context, the verb `to document` means to record information for future use. It involves writing details, steps, or important points. -`Future reference` refers to the use of this recorded information at a later time, often to solve problems or recall procedures. For example: +`Future reference` refers to the use of this recorded information at a later time, often to solve problems or recall procedures. Por exemplo: `They are documenting their studies for future reference.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b80774ecba3c156722aa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b80774ecba3c156722aa.md index 0faae918293..9e67b57d2a8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b80774ecba3c156722aa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2b80774ecba3c156722aa.md @@ -1,6 +1,6 @@ --- id: 65b2b80774ecba3c156722aa -title: Task 58 +title: Tarefa 58 challengeType: 22 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2ba3323d6d33d470e5f53.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2ba3323d6d33d470e5f53.md index a021c9f9e20..e6214a3cf9d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2ba3323d6d33d470e5f53.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2ba3323d6d33d470e5f53.md @@ -1,6 +1,6 @@ --- id: 65b2ba3323d6d33d470e5f53 -title: Task 59 +title: Tarefa 59 challengeType: 19 dashedName: task-59 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2bb073ac8d03dfe507810.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2bb073ac8d03dfe507810.md index d09794f346c..77f1055352f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2bb073ac8d03dfe507810.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2bb073ac8d03dfe507810.md @@ -1,6 +1,6 @@ --- id: 65b2bb073ac8d03dfe507810 -title: Task 60 +title: Tarefa 60 challengeType: 19 dashedName: task-60 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2bd42ca24dd3ede91aa41.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2bd42ca24dd3ede91aa41.md index 77ed10144d1..fd9d8d29ec1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2bd42ca24dd3ede91aa41.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/65b2bd42ca24dd3ede91aa41.md @@ -1,6 +1,6 @@ --- id: 65b2bd42ca24dd3ede91aa41 -title: Task 61 +title: Tarefa 61 challengeType: 22 dashedName: task-61 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index dd7d52001e2..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..e5571f08f36 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..ea4e9a66215 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index 99dc05602bc..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626261426a32b191320ecbe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626261426a32b191320ecbe.md index b04a968f27e..2cd58ab099f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626261426a32b191320ecbe.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626261426a32b191320ecbe.md @@ -11,4 +11,4 @@ Watch the video below to understand the context of the upcoming lessons. # --assignment-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662626b2e13cfe1d39bc40fd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662626b2e13cfe1d39bc40fd.md index 254a4f1093b..edc814590ee 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662626b2e13cfe1d39bc40fd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662626b2e13cfe1d39bc40fd.md @@ -1,6 +1,6 @@ --- id: 662626b2e13cfe1d39bc40fd -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262700a108801e85319172.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262700a108801e85319172.md index e857da541e8..c4856f9f971 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262700a108801e85319172.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262700a108801e85319172.md @@ -1,6 +1,6 @@ --- id: 66262700a108801e85319172 -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626273eb00c031f4988f129.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626273eb00c031f4988f129.md index 73596087d59..8214ff44e60 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626273eb00c031f4988f129.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626273eb00c031f4988f129.md @@ -1,6 +1,6 @@ --- id: 6626273eb00c031f4988f129 -title: Task 3 +title: Tarefa 3 challengeType: 19 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662629de1d3ccf2559a76a02.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662629de1d3ccf2559a76a02.md index 5c553ec0dac..3914a904a93 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662629de1d3ccf2559a76a02.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662629de1d3ccf2559a76a02.md @@ -1,6 +1,6 @@ --- id: 662629de1d3ccf2559a76a02 -title: Task 4 +title: Tarefa 4 challengeType: 19 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262a51f3a76626829fe191.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262a51f3a76626829fe191.md index c40ee08af9a..53804f0e144 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262a51f3a76626829fe191.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262a51f3a76626829fe191.md @@ -1,6 +1,6 @@ --- id: 66262a51f3a76626829fe191 -title: Task 5 +title: Tarefa 5 challengeType: 22 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262a982c6ae427498f9871.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262a982c6ae427498f9871.md index 59727a03faa..a8617a0f617 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262a982c6ae427498f9871.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262a982c6ae427498f9871.md @@ -1,6 +1,6 @@ --- id: 66262a982c6ae427498f9871 -title: Task 6 +title: Tarefa 6 challengeType: 19 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262b58c53d902944183b44.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262b58c53d902944183b44.md index ca3051030f0..996f04e5492 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262b58c53d902944183b44.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262b58c53d902944183b44.md @@ -1,6 +1,6 @@ --- id: 66262b58c53d902944183b44 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262b91a2380f2a02d20e94.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262b91a2380f2a02d20e94.md index 9f085435bdb..4de56f4fa2e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262b91a2380f2a02d20e94.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262b91a2380f2a02d20e94.md @@ -1,6 +1,6 @@ --- id: 66262b91a2380f2a02d20e94 -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262c938943392c6aa23d39.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262c938943392c6aa23d39.md index c91866f2571..e8ec88edbc2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262c938943392c6aa23d39.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262c938943392c6aa23d39.md @@ -1,6 +1,6 @@ --- id: 66262c938943392c6aa23d39 -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262d2afcdcf52e02a98d24.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262d2afcdcf52e02a98d24.md index e9db210af34..37d0bb4d5e4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262d2afcdcf52e02a98d24.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262d2afcdcf52e02a98d24.md @@ -1,6 +1,6 @@ --- id: 66262d2afcdcf52e02a98d24 -title: Task 10 +title: Tarefa 10 challengeType: 22 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262d74745ccb2efde7670e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262d74745ccb2efde7670e.md index bab8617b443..3f137739406 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262d74745ccb2efde7670e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66262d74745ccb2efde7670e.md @@ -1,6 +1,6 @@ --- id: 66262d74745ccb2efde7670e -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263023754e892fd8fd3eee.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263023754e892fd8fd3eee.md index 3b129cae550..43f9a6dd423 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263023754e892fd8fd3eee.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263023754e892fd8fd3eee.md @@ -1,6 +1,6 @@ --- id: 66263023754e892fd8fd3eee -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626346c3db7ed3eab925b8c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626346c3db7ed3eab925b8c.md index 05cce11dc41..3da0fec65db 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626346c3db7ed3eab925b8c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626346c3db7ed3eab925b8c.md @@ -1,6 +1,6 @@ --- id: 6626346c3db7ed3eab925b8c -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662634fa4dab0640457469f6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662634fa4dab0640457469f6.md index f8dbd6f9fdb..8adb50706b2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662634fa4dab0640457469f6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662634fa4dab0640457469f6.md @@ -1,6 +1,6 @@ --- id: 662634fa4dab0640457469f6 -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626355a442bde41613ed03b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626355a442bde41613ed03b.md index 027cd1908f6..12195359a53 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626355a442bde41613ed03b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626355a442bde41613ed03b.md @@ -1,6 +1,6 @@ --- id: 6626355a442bde41613ed03b -title: Task 15 +title: Tarefa 15 challengeType: 22 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662635b73cca81426d091f59.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662635b73cca81426d091f59.md index e92d030ef28..e045a418ef4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662635b73cca81426d091f59.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662635b73cca81426d091f59.md @@ -1,6 +1,6 @@ --- id: 662635b73cca81426d091f59 -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263606a953984372df559a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263606a953984372df559a.md index 9652f77e945..7518ab647b4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263606a953984372df559a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263606a953984372df559a.md @@ -1,6 +1,6 @@ --- id: 66263606a953984372df559a -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662636481f9a3a4467dcaec3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662636481f9a3a4467dcaec3.md index 899574a5bdc..a690e6d35dc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662636481f9a3a4467dcaec3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662636481f9a3a4467dcaec3.md @@ -1,6 +1,6 @@ --- id: 662636481f9a3a4467dcaec3 -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662637442baaf548015d56d9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662637442baaf548015d56d9.md index 377831543b3..0487dda9082 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662637442baaf548015d56d9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662637442baaf548015d56d9.md @@ -9,6 +9,6 @@ dashedName: dialogue-2-an-online-meeting-for-software-training Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662637b4ae77ed48d6d5ba8d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662637b4ae77ed48d6d5ba8d.md index 1c6aaa2170e..076f924e1ca 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662637b4ae77ed48d6d5ba8d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662637b4ae77ed48d6d5ba8d.md @@ -1,6 +1,6 @@ --- id: 662637b4ae77ed48d6d5ba8d -title: Task 19 +title: Tarefa 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263800f12d8d4a6edffdcd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263800f12d8d4a6edffdcd.md index 09e14ee77a4..76849025200 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263800f12d8d4a6edffdcd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263800f12d8d4a6edffdcd.md @@ -1,6 +1,6 @@ --- id: 66263800f12d8d4a6edffdcd -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263852d4e9534b53c82e2e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263852d4e9534b53c82e2e.md index 59d96a7cda4..ec9f2032e4c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263852d4e9534b53c82e2e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263852d4e9534b53c82e2e.md @@ -1,6 +1,6 @@ --- id: 66263852d4e9534b53c82e2e -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263891f8b3f74c36cd90b4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263891f8b3f74c36cd90b4.md index e4882821f1b..25337271e6f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263891f8b3f74c36cd90b4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263891f8b3f74c36cd90b4.md @@ -1,6 +1,6 @@ --- id: 66263891f8b3f74c36cd90b4 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662638ca74be054d04c448fa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662638ca74be054d04c448fa.md index d4048a8a5e7..70bf3ae7248 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662638ca74be054d04c448fa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662638ca74be054d04c448fa.md @@ -1,6 +1,6 @@ --- id: 662638ca74be054d04c448fa -title: Task 23 +title: Tarefa 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662639212dc5664e08ec05f6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662639212dc5664e08ec05f6.md index 54f2cdf1d0f..ced3ad67596 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662639212dc5664e08ec05f6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662639212dc5664e08ec05f6.md @@ -1,6 +1,6 @@ --- id: 662639212dc5664e08ec05f6 -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626396c2fd2604f117731b2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626396c2fd2604f117731b2.md index 5d4631f2902..2a4c835a635 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626396c2fd2604f117731b2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626396c2fd2604f117731b2.md @@ -1,6 +1,6 @@ --- id: 6626396c2fd2604f117731b2 -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263a41ce552c514cb6fc3e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263a41ce552c514cb6fc3e.md index 7c690d53361..2777fdc392e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263a41ce552c514cb6fc3e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263a41ce552c514cb6fc3e.md @@ -1,6 +1,6 @@ --- id: 66263a41ce552c514cb6fc3e -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263aace1c84e52a2974049.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263aace1c84e52a2974049.md index eb24df02828..7967d55771a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263aace1c84e52a2974049.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263aace1c84e52a2974049.md @@ -1,6 +1,6 @@ --- id: 66263aace1c84e52a2974049 -title: Task 27 +title: Tarefa 27 challengeType: 19 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263b5ca3878d54811f9ac2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263b5ca3878d54811f9ac2.md index d02e2af08db..3b13665c394 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263b5ca3878d54811f9ac2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263b5ca3878d54811f9ac2.md @@ -1,6 +1,6 @@ --- id: 66263b5ca3878d54811f9ac2 -title: Task 28 +title: Tarefa 28 challengeType: 19 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263d28fe1eae5a2601d0d6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263d28fe1eae5a2601d0d6.md index 08dd5cab30f..41e5ac6803a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263d28fe1eae5a2601d0d6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263d28fe1eae5a2601d0d6.md @@ -9,6 +9,6 @@ dashedName: dialogue-3-integrating-a-framework Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263d47baac2d5ad278e68c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263d47baac2d5ad278e68c.md index 1e7f432792f..ea6f43e9d0f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263d47baac2d5ad278e68c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66263d47baac2d5ad278e68c.md @@ -1,6 +1,6 @@ --- id: 66263d47baac2d5ad278e68c -title: Task 29 +title: Tarefa 29 challengeType: 22 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66264a9e3e030663acc4109a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66264a9e3e030663acc4109a.md index 65afad12467..442ce814afe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66264a9e3e030663acc4109a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66264a9e3e030663acc4109a.md @@ -1,6 +1,6 @@ --- id: 66264a9e3e030663acc4109a -title: Task 30 +title: Tarefa 30 challengeType: 19 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66264bc673d62766a8ab48bc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66264bc673d62766a8ab48bc.md index 1596bd05b1c..e387a2da362 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66264bc673d62766a8ab48bc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66264bc673d62766a8ab48bc.md @@ -1,6 +1,6 @@ --- id: 66264bc673d62766a8ab48bc -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265cebc033f66a2a4451e9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265cebc033f66a2a4451e9.md index 17a39c08643..98950ccda91 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265cebc033f66a2a4451e9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265cebc033f66a2a4451e9.md @@ -1,6 +1,6 @@ --- id: 66265cebc033f66a2a4451e9 -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265d447926ae6b9e9af13e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265d447926ae6b9e9af13e.md index a4aa06fbe9a..a0df864cc1a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265d447926ae6b9e9af13e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265d447926ae6b9e9af13e.md @@ -1,6 +1,6 @@ --- id: 66265d447926ae6b9e9af13e -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265dd49cbab56d038d0d2e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265dd49cbab56d038d0d2e.md index 1b487e9620a..a12facf0a57 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265dd49cbab56d038d0d2e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265dd49cbab56d038d0d2e.md @@ -1,6 +1,6 @@ --- id: 66265dd49cbab56d038d0d2e -title: Task 34 +title: Tarefa 34 challengeType: 22 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265e0ac3bdc26ddf3525f5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265e0ac3bdc26ddf3525f5.md index fddb2bca6e9..9feee1f12cb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265e0ac3bdc26ddf3525f5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265e0ac3bdc26ddf3525f5.md @@ -1,6 +1,6 @@ --- id: 66265e0ac3bdc26ddf3525f5 -title: Task 35 +title: Tarefa 35 challengeType: 19 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265e4a43ec6d6e9ba7cc79.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265e4a43ec6d6e9ba7cc79.md index 5f237889045..15909d9988f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265e4a43ec6d6e9ba7cc79.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265e4a43ec6d6e9ba7cc79.md @@ -1,6 +1,6 @@ --- id: 66265e4a43ec6d6e9ba7cc79 -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265ec39f8cf36fe615bd11.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265ec39f8cf36fe615bd11.md index 66c82295a9c..39905f375a7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265ec39f8cf36fe615bd11.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265ec39f8cf36fe615bd11.md @@ -1,6 +1,6 @@ --- id: 66265ec39f8cf36fe615bd11 -title: Task 37 +title: Tarefa 37 challengeType: 19 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265f07ee69a670cc620d1e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265f07ee69a670cc620d1e.md index 8b871038846..95cb98546ab 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265f07ee69a670cc620d1e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265f07ee69a670cc620d1e.md @@ -1,6 +1,6 @@ --- id: 66265f07ee69a670cc620d1e -title: Task 38 +title: Tarefa 38 challengeType: 22 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265f3bb6ec0c7186e0c621.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265f3bb6ec0c7186e0c621.md index c6661111b29..d1d6f231b27 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265f3bb6ec0c7186e0c621.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/66265f3bb6ec0c7186e0c621.md @@ -1,6 +1,6 @@ --- id: 66265f3bb6ec0c7186e0c621 -title: Task 39 +title: Tarefa 39 challengeType: 19 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626676b898b1d721834736a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626676b898b1d721834736a.md index f40a76257e6..817079568bc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626676b898b1d721834736a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/6626676b898b1d721834736a.md @@ -1,6 +1,6 @@ --- id: 6626676b898b1d721834736a -title: Task 40 +title: Tarefa 40 challengeType: 19 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662668a5aa1437017755151d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662668a5aa1437017755151d.md index cbe0d5a4cf5..d19f9a504f8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662668a5aa1437017755151d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/662668a5aa1437017755151d.md @@ -1,6 +1,6 @@ --- id: 662668a5aa1437017755151d -title: Task 41 +title: Tarefa 41 challengeType: 19 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 4a05d533d20..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd595245455d0dca3434ba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd595245455d0dca3434ba.md index 2bea1b52447..691f2c73cca 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd595245455d0dca3434ba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd595245455d0dca3434ba.md @@ -7,8 +7,8 @@ dashedName: dialogue-1-navigating-documentation # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5a9680a9540e9787dec5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5a9680a9540e9787dec5.md index c32d26f1f32..3b89ddc6350 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5a9680a9540e9787dec5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5a9680a9540e9787dec5.md @@ -1,6 +1,6 @@ --- id: 65fd5a9680a9540e9787dec5 -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5c89285ea50f25bd0241.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5c89285ea50f25bd0241.md index 486c8618fbc..ca3c08a4612 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5c89285ea50f25bd0241.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5c89285ea50f25bd0241.md @@ -1,6 +1,6 @@ --- id: 65fd5c89285ea50f25bd0241 -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5d1a6cb7f10f77a06163.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5d1a6cb7f10f77a06163.md index cc249319754..22f77967b35 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5d1a6cb7f10f77a06163.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5d1a6cb7f10f77a06163.md @@ -1,6 +1,6 @@ --- id: 65fd5d1a6cb7f10f77a06163 -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5da902959d0fda781aa3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5da902959d0fda781aa3.md index e81409d215c..b2f7a3f1725 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5da902959d0fda781aa3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5da902959d0fda781aa3.md @@ -1,6 +1,6 @@ --- id: 65fd5da902959d0fda781aa3 -title: Task 4 +title: Tarefa 4 challengeType: 22 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5dfc174596101eae1107.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5dfc174596101eae1107.md index bcecb38133c..67ddfa843ae 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5dfc174596101eae1107.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5dfc174596101eae1107.md @@ -1,6 +1,6 @@ --- id: 65fd5dfc174596101eae1107 -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5f2abfdbc510942d76f8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5f2abfdbc510942d76f8.md index a2933bc8d8e..3723d46b5c7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5f2abfdbc510942d76f8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5f2abfdbc510942d76f8.md @@ -1,6 +1,6 @@ --- id: 65fd5f2abfdbc510942d76f8 -title: Task 6 +title: Tarefa 6 challengeType: 19 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5f86457b4910e35b51c9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5f86457b4910e35b51c9.md index af9144dbc90..4d8110a22eb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5f86457b4910e35b51c9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd5f86457b4910e35b51c9.md @@ -1,6 +1,6 @@ --- id: 65fd5f86457b4910e35b51c9 -title: Task 7 +title: Tarefa 7 challengeType: 22 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd620e9ba99c116c42c361.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd620e9ba99c116c42c361.md index 28cbcbb5239..7bb4a691960 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd620e9ba99c116c42c361.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd620e9ba99c116c42c361.md @@ -1,6 +1,6 @@ --- id: 65fd620e9ba99c116c42c361 -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd63be9afd7611d2a9b788.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd63be9afd7611d2a9b788.md index b051f5b2839..dec2641af59 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd63be9afd7611d2a9b788.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fd63be9afd7611d2a9b788.md @@ -1,6 +1,6 @@ --- id: 65fd63be9afd7611d2a9b788 -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65ffa914bc44081a196fa6f7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65ffa914bc44081a196fa6f7.md index 7cae6eda07f..2d771e21963 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65ffa914bc44081a196fa6f7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65ffa914bc44081a196fa6f7.md @@ -1,6 +1,6 @@ --- id: 65ffa914bc44081a196fa6f7 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65ffa9d80e7ffb1ab9b4df1c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65ffa9d80e7ffb1ab9b4df1c.md index e419c9428e5..5897249b63b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65ffa9d80e7ffb1ab9b4df1c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65ffa9d80e7ffb1ab9b4df1c.md @@ -1,6 +1,6 @@ --- id: 65ffa9d80e7ffb1ab9b4df1c -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff2b49779301d9bdab6fa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff2b49779301d9bdab6fa.md index d5275b3d89d..dcaa4461103 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff2b49779301d9bdab6fa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff2b49779301d9bdab6fa.md @@ -1,6 +1,6 @@ --- id: 65fff2b49779301d9bdab6fa -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff336d7553c1df86f7968.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff336d7553c1df86f7968.md index 5f5e18c7f15..50befc06fd5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff336d7553c1df86f7968.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff336d7553c1df86f7968.md @@ -1,6 +1,6 @@ --- id: 65fff336d7553c1df86f7968 -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff428290eaa1e5819c119.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff428290eaa1e5819c119.md index 9a01ef72df8..195a55608a3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff428290eaa1e5819c119.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff428290eaa1e5819c119.md @@ -1,6 +1,6 @@ --- id: 65fff428290eaa1e5819c119 -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff57ce568cf1ed9702fbf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff57ce568cf1ed9702fbf.md index 2997605b615..fc2d0b8aa18 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff57ce568cf1ed9702fbf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/65fff57ce568cf1ed9702fbf.md @@ -1,6 +1,6 @@ --- id: 65fff57ce568cf1ed9702fbf -title: Task 15 +title: Tarefa 15 challengeType: 22 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000a440c2f492ddee509f9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000a440c2f492ddee509f9.md index 59691e6fd90..4090a7c51fe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000a440c2f492ddee509f9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000a440c2f492ddee509f9.md @@ -9,6 +9,6 @@ dashedName: dialogue-2-understanding-function-descriptions Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000ac46e87f52e84328b95.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000ac46e87f52e84328b95.md index f305fc0bf77..48da787cae3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000ac46e87f52e84328b95.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000ac46e87f52e84328b95.md @@ -1,6 +1,6 @@ --- id: 66000ac46e87f52e84328b95 -title: Task 16 +title: Tarefa 16 challengeType: 22 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000eeeec06b6338a5c5caf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000eeeec06b6338a5c5caf.md index ef9fa571946..cbc4fe87041 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000eeeec06b6338a5c5caf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000eeeec06b6338a5c5caf.md @@ -1,6 +1,6 @@ --- id: 66000eeeec06b6338a5c5caf -title: Task 17 +title: Tarefa 17 challengeType: 19 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000f74c71b623407a8394e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000f74c71b623407a8394e.md index 3215ecd8516..35dffca3b08 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000f74c71b623407a8394e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000f74c71b623407a8394e.md @@ -1,6 +1,6 @@ --- id: 66000f74c71b623407a8394e -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000fec4b5a8c348421fada.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000fec4b5a8c348421fada.md index cf4969f80b2..536d1662984 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000fec4b5a8c348421fada.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66000fec4b5a8c348421fada.md @@ -1,6 +1,6 @@ --- id: 66000fec4b5a8c348421fada -title: Task 19 +title: Tarefa 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/6600107b9dffa8350e0c4ee8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/6600107b9dffa8350e0c4ee8.md index b546e71ba88..1f0dfe8a3a8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/6600107b9dffa8350e0c4ee8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/6600107b9dffa8350e0c4ee8.md @@ -1,6 +1,6 @@ --- id: 6600107b9dffa8350e0c4ee8 -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660011289b5237359f69c76b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660011289b5237359f69c76b.md index 434b06bb3a1..3a46fedb920 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660011289b5237359f69c76b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660011289b5237359f69c76b.md @@ -1,6 +1,6 @@ --- id: 660011289b5237359f69c76b -title: Task 21 +title: Tarefa 21 challengeType: 19 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660011d015f7d43626524ef8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660011d015f7d43626524ef8.md index fc6a7a10d70..8022c6310ca 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660011d015f7d43626524ef8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660011d015f7d43626524ef8.md @@ -1,6 +1,6 @@ --- id: 660011d015f7d43626524ef8 -title: Task 22 +title: Tarefa 22 challengeType: 22 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660012a18576e836ea18fa0b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660012a18576e836ea18fa0b.md index 0af01723a4a..0031ebc2c8a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660012a18576e836ea18fa0b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660012a18576e836ea18fa0b.md @@ -1,6 +1,6 @@ --- id: 660012a18576e836ea18fa0b -title: Task 23 +title: Tarefa 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660012ff748bf2375c31b591.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660012ff748bf2375c31b591.md index 67d375de42b..1e3d8bfbfd5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660012ff748bf2375c31b591.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660012ff748bf2375c31b591.md @@ -1,6 +1,6 @@ --- id: 660012ff748bf2375c31b591 -title: Task 24 +title: Tarefa 24 challengeType: 22 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660013ce54713f37ecac079d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660013ce54713f37ecac079d.md index 87665c2a427..b542720d776 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660013ce54713f37ecac079d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660013ce54713f37ecac079d.md @@ -1,6 +1,6 @@ --- id: 660013ce54713f37ecac079d -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/6600144958b1d33857b0309f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/6600144958b1d33857b0309f.md index 583f7077fbf..4cb0455c5a7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/6600144958b1d33857b0309f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/6600144958b1d33857b0309f.md @@ -1,6 +1,6 @@ --- id: 6600144958b1d33857b0309f -title: Task 26 +title: Tarefa 26 challengeType: 22 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660014d3f5b02038de6ac35c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660014d3f5b02038de6ac35c.md index 60e7978448c..4057360f3ad 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660014d3f5b02038de6ac35c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660014d3f5b02038de6ac35c.md @@ -1,6 +1,6 @@ --- id: 660014d3f5b02038de6ac35c -title: Task 27 +title: Tarefa 27 challengeType: 22 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660019617debd03c767e0a3d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660019617debd03c767e0a3d.md index 0f4a3ec30ad..c30277933fb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660019617debd03c767e0a3d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/660019617debd03c767e0a3d.md @@ -9,6 +9,6 @@ dashedName: dialogue-3-understanding-parameters-and-options Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001985c091f13cda6d4f4d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001985c091f13cda6d4f4d.md index 7fb668f7081..91de8dd709f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001985c091f13cda6d4f4d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001985c091f13cda6d4f4d.md @@ -1,6 +1,6 @@ --- id: 66001985c091f13cda6d4f4d -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001a1c9df0a83d8e8c670a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001a1c9df0a83d8e8c670a.md index 7b3457e239b..f138c6677ec 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001a1c9df0a83d8e8c670a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001a1c9df0a83d8e8c670a.md @@ -1,6 +1,6 @@ --- id: 66001a1c9df0a83d8e8c670a -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001a935988e43e1183bd38.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001a935988e43e1183bd38.md index 30bc71edccd..e348470e2ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001a935988e43e1183bd38.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001a935988e43e1183bd38.md @@ -1,6 +1,6 @@ --- id: 66001a935988e43e1183bd38 -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001b1aa59adc3ea4b024b4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001b1aa59adc3ea4b024b4.md index 67591a4aac6..0caa7fcb323 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001b1aa59adc3ea4b024b4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001b1aa59adc3ea4b024b4.md @@ -1,6 +1,6 @@ --- id: 66001b1aa59adc3ea4b024b4 -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001b8d0518d03f18b19715.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001b8d0518d03f18b19715.md index db611565f3c..87b61369078 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001b8d0518d03f18b19715.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001b8d0518d03f18b19715.md @@ -1,6 +1,6 @@ --- id: 66001b8d0518d03f18b19715 -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001be61f20a33f8a45f3cb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001be61f20a33f8a45f3cb.md index 2671282b945..4062518e88a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001be61f20a33f8a45f3cb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001be61f20a33f8a45f3cb.md @@ -1,6 +1,6 @@ --- id: 66001be61f20a33f8a45f3cb -title: Task 33 +title: Tarefa 33 challengeType: 22 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001cac957f0740252c2611.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001cac957f0740252c2611.md index e83c21ccf59..07b86401066 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001cac957f0740252c2611.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001cac957f0740252c2611.md @@ -1,6 +1,6 @@ --- id: 66001cac957f0740252c2611 -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001d1ffd0e0b40a8cbf0c7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001d1ffd0e0b40a8cbf0c7.md index eb1af1d34b7..d55593f84be 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001d1ffd0e0b40a8cbf0c7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001d1ffd0e0b40a8cbf0c7.md @@ -1,6 +1,6 @@ --- id: 66001d1ffd0e0b40a8cbf0c7 -title: Task 35 +title: Tarefa 35 challengeType: 22 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001d8b878f5141214f2d77.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001d8b878f5141214f2d77.md index 2c98b407ef6..54355fec9db 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001d8b878f5141214f2d77.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/66001d8b878f5141214f2d77.md @@ -1,6 +1,6 @@ --- id: 66001d8b878f5141214f2d77 -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index f232d3c2117..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index e1a90774eb3..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..31892342070 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Tarefa 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..b314fe2b20a --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Tarefa 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`funcionalidade` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..1d907491038 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Tarefa 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..0a2429b1e84 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Tarefa 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..64af2e1afa2 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Tarefa 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`chave` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..9926ba7d49d --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..b701fbdfac7 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Tarefa 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..cad84ae9914 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Tarefa 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`ligado` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..e38ed9f2c83 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Tarefa 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..7a6c400d67b --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Tarefa 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..71c4be99fba --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Tarefa 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..83763f992e4 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Tarefa 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..00a80ef180e --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Tarefa 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..2a708226613 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Tarefa 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..9dbb9507ec1 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..af630ed7549 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Tarefa 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Oi! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..cd3996e6914 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Tarefa 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..44dd1ccd4e6 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Tarefa 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..30df8e540c6 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Tarefa 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..2d05116b1d1 --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Tarefa 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`ligado` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..c325b9cc71c --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Tarefa 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. Esta palavra inicia com letra maiúscula. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..e91cced48ff --- /dev/null +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Tarefa 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index 53ce607a626..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..087c4151700 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..664f4d7cfb8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -1,15 +1,11 @@ --- id: 6579c82fc81196a43686415a -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..145a71e5fa1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -1,15 +1,11 @@ --- id: 6579c8d3313c5fa61d25d4ff -title: Task 2 +title: Tarefa 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..5ef31ecff20 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -1,15 +1,11 @@ --- id: 6579c96067f16bad8e7e6cba -title: Task 3 +title: Tarefa 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..45d8f00bcae 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -1,15 +1,11 @@ --- id: 6579cee11b0bd1cc8bf20829 -title: Task 4 +title: Tarefa 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..855464ec8dc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -1,15 +1,11 @@ --- id: 6579cf3ada08bdcfd5eae689 -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..89b5151f708 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -1,15 +1,11 @@ --- id: 6579cf81a9cec6d21f872959 -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..794c20fb592 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -1,15 +1,11 @@ --- id: 6579cfc55663f6d40c4a65e1 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..37ec4201a47 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -1,15 +1,11 @@ --- id: 6579d002683211d5c7d13ef3 -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..eaf83d1aa65 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -1,15 +1,11 @@ --- id: 6579d035f49339d7aa16ec74 -title: Task 9 +title: Tarefa 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..dcc63dc006d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -1,15 +1,11 @@ --- id: 6579d06801111dd95231e7e5 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..b8a9f4e058c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -1,15 +1,11 @@ --- id: 6579d40e7729a7e393cfcdd3 -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..8ea8ed232c1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -1,15 +1,11 @@ --- id: 6579d44bd49d1ae58c2603d4 -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..410d9d6de7a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -1,15 +1,11 @@ --- id: 6579d49319613ee79fe12f7d -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1b1397cec78 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -1,15 +1,11 @@ --- id: 6579d4ca0578b4e95f1df60e -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..0577c6970b3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -1,15 +1,11 @@ --- id: 6579d4f3afd265eb0db874f7 -title: Task 15 +title: Tarefa 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..49bb1792dfe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -1,15 +1,11 @@ --- id: 6579d539b1e5c2ec64484e49 -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..d740ef9c5ea 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -1,15 +1,11 @@ --- id: 6579d56623c2d8ee0f2bea87 -title: Task 17 +title: Tarefa 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..15d6e68c0ab 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -1,9 +1,8 @@ --- id: 6579d58e434920ef874f2502 -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..ffea8f989f2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -1,14 +1,13 @@ --- id: 6579d62a28ab37f24f6ea8f9 -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- -The modal verb `would` is often used to talk about possible actions or decisions in certain situations. It can also be used to make polite requests. For example: +The modal verb `would` is often used to talk about possible actions or decisions in certain situations. It can also be used to make polite requests. Por exemplo: 1. `I would go to the party if I had time.` - talking about a possible action. 2. `Would you help me with this?` - making a polite request. @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..9446ccd4460 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -1,25 +1,21 @@ --- id: 6579d67a4c6a3bf5d55ce3fd -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..d5591111f74 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -1,15 +1,11 @@ --- id: 6579d7f5a745c0fac805d356 -title: Task 21 +title: Tarefa 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..27a920b691e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -1,14 +1,11 @@ --- id: 6579d827ebd50afcacb829fe -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..21201937e70 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -1,15 +1,11 @@ --- id: 6579d84f48c9c2fe53b06de9 -title: Task 23 +title: Tarefa 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..13f3aa0ee0f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -1,15 +1,11 @@ --- id: 6579d86fee9092ffb268f962 -title: Task 24 +title: Tarefa 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..d8e1b38ee4b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -1,19 +1,15 @@ --- id: 6579d89bc117c40111641200 -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..31be5b224ce 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -1,15 +1,11 @@ --- id: 6579d8d24bf33b02f22685ac -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..27e59f550cf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -1,15 +1,11 @@ --- id: 6579db53194a7c0f617943ac -title: Task 27 +title: Tarefa 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..2cfabfe0e0f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -1,19 +1,16 @@ --- id: 6579db734a2b8010c3e92ada -title: Task 28 +title: Tarefa 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..0c4812c053f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -1,15 +1,11 @@ --- id: 6579db9c67d64e123b19c235 -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..73538c0aa02 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -1,15 +1,11 @@ --- id: 6579dbc2c1fc601436f2676b -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..0893a4b4e3b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -1,15 +1,11 @@ --- id: 6579dbf6a3e8a5161a592169 -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..b06dcb00c17 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -1,15 +1,11 @@ --- id: 6579dc4332b86017e39b9c03 -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ea22b427061 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..3a7ca7ee49a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -1,15 +1,11 @@ --- id: 6579dd420cf6b81db05470f4 -title: Task 33 +title: Tarefa 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..c55417df506 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -1,15 +1,11 @@ --- id: 6579dd5f2f35b11f3dcd9702 -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..2e739ba8ee6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -1,15 +1,11 @@ --- id: 6579dd80bdd49220560f26ad -title: Task 35 +title: Tarefa 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..ab4cf08b213 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -1,14 +1,11 @@ --- id: 6579dd9846f35921af1ffe1c -title: Task 36 +title: Tarefa 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..b0a39e45a47 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -1,15 +1,11 @@ --- id: 6579ddb17d88c12323aae5b5 -title: Task 37 +title: Tarefa 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..9b469696a96 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -1,19 +1,15 @@ --- id: 6579ddc94db61d2463022da3 -title: Task 38 +title: Tarefa 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..8c0eaea4ee7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -1,19 +1,15 @@ --- id: 6579dde808b24525c95ec2a3 -title: Task 39 +title: Tarefa 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..47ab8d9be1d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -1,15 +1,11 @@ --- id: 6579de040244fb274179f001 -title: Task 40 +title: Tarefa 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..1f10210b4b5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -1,15 +1,11 @@ --- id: 6579de1f43444d2869022c6d -title: Task 41 +title: Tarefa 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..60c7b4b90ac 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -1,15 +1,11 @@ --- id: 6579de444ec34929dbc6c2ab -title: Task 42 +title: Tarefa 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..cc49c1a4b85 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -1,15 +1,11 @@ --- id: 6579de58f1da5a2b4c6ea741 -title: Task 43 +title: Tarefa 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..75aeb21e4fa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -1,15 +1,11 @@ --- id: 6579de73144df42cb2d373ef -title: Task 44 +title: Tarefa 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..025f2d9f449 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -1,15 +1,11 @@ --- id: 6579de90a68c532e08e96f02 -title: Task 45 +title: Tarefa 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..2394ff4c3bc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -1,15 +1,11 @@ --- id: 6579df1646568c3268b93637 -title: Task 46 +title: Tarefa 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..5828bd507b0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..6a3b278d4ad 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -1,15 +1,11 @@ --- id: 6579dfac25b3e6370956a820 -title: Task 47 +title: Tarefa 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..2e85caf9276 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -1,15 +1,11 @@ --- id: 6579dfd504a9ad385a3a4fd9 -title: Task 48 +title: Tarefa 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..f653e6f02b8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -1,15 +1,11 @@ --- id: 6579e0385253cd3a7bd44902 -title: Task 49 +title: Tarefa 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..217f6a4f93b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -1,19 +1,15 @@ --- id: 6579e08f06692a3c176f3faa -title: Task 50 +title: Tarefa 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..23e57bf670f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -1,29 +1,25 @@ --- id: 6579e0e6402c813da7e25ca2 -title: Task 51 +title: Tarefa 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..37296f06d1c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -1,15 +1,11 @@ --- id: 6579e102b5a7223f0d0e9fc4 -title: Task 52 +title: Tarefa 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..89b103a2025 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -1,15 +1,11 @@ --- id: 6579e12834045640e90e58bd -title: Task 53 +title: Tarefa 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..86488038bf9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -1,19 +1,15 @@ --- id: 6579e13cd2c9ee424eb815df -title: Task 54 +title: Tarefa 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..3def244da19 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -1,15 +1,11 @@ --- id: 6579e153639adb43c017f3d3 -title: Task 55 +title: Tarefa 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..6a19e8c44fc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -1,19 +1,15 @@ --- id: 6579e17ff05c5d451c2e4f35 -title: Task 56 +title: Tarefa 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..d3a975cd6a6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -1,14 +1,11 @@ --- id: 6579e19be475334667ba4333 -title: Task 57 +title: Tarefa 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..14940512b33 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -1,29 +1,25 @@ --- id: 6579e1b324902e47dae63c90 -title: Task 58 +title: Tarefa 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..f21d0145e10 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -1,16 +1,11 @@ --- id: 6579e1cd6c8b6248fa62ed48 -title: Task 59 +title: Tarefa 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index ea3228467e7..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/655c0f0e52bfc67bdeae16b4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/655c0f0e52bfc67bdeae16b4.md index c17c09acbf3..61c67aef04f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/655c0f0e52bfc67bdeae16b4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/655c0f0e52bfc67bdeae16b4.md @@ -7,11 +7,11 @@ dashedName: dialogue-1-tom-asks-sophie-about-her-routine # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e06eca8147f561619be7d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e06eca8147f561619be7d.md index a3d72619312..1126135cabf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e06eca8147f561619be7d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e06eca8147f561619be7d.md @@ -19,7 +19,7 @@ The use of time expressions like `usually` and specific times like `8:30` helps # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e07580285f658d1f98cfe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e07580285f658d1f98cfe.md index 0c01c5818e3..f49f5dd4a9c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e07580285f658d1f98cfe.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e07580285f658d1f98cfe.md @@ -13,7 +13,7 @@ The phrase `after that` is used to indicate the next action following a previous # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e07a2fdda8d5ac93d415e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e07a2fdda8d5ac93d415e.md index e59a61842e1..affc980181d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e07a2fdda8d5ac93d415e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e07a2fdda8d5ac93d415e.md @@ -1,6 +1,6 @@ --- id: 657e07a2fdda8d5ac93d415e -title: Task 7 +title: Tarefa 7 challengeType: 22 dashedName: task-7 --- @@ -19,7 +19,7 @@ This helps people to understand how a series of actions or events are connected # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0868da73165e32763679.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0868da73165e32763679.md index 1f2f7dad4b5..4fe3a6ed7fe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0868da73165e32763679.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0868da73165e32763679.md @@ -13,7 +13,7 @@ Or in the sentence `I spend most of my time coding`, `most` indicates that codin In the context of Sophie's dialogue, when she says she likes to work on the `most important` tasks first, she means she chooses to do the tasks that are the highest in importance compared to the others. -Examples: +Exemplos: - `The most challenging part of my job is solving complex problems.` - `I like to drink coffee the most in the morning.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0973aa91c662814c2ecf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0973aa91c662814c2ecf.md index 0ad64cdada8..378b77e85b2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0973aa91c662814c2ecf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0973aa91c662814c2ecf.md @@ -15,7 +15,7 @@ dashedName: task-9 # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0eaff0dab975c4be3099.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0eaff0dab975c4be3099.md index ab9992af553..7322acaafac 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0eaff0dab975c4be3099.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e0eaff0dab975c4be3099.md @@ -1,6 +1,6 @@ --- id: 657e0eaff0dab975c4be3099 -title: Task 12 +title: Tarefa 12 challengeType: 22 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e10ccd09f1d7e38f4b560.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e10ccd09f1d7e38f4b560.md index 580c3f69998..b8ed3c504dc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e10ccd09f1d7e38f4b560.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e10ccd09f1d7e38f4b560.md @@ -1,6 +1,6 @@ --- id: 657e10ccd09f1d7e38f4b560 -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- @@ -15,7 +15,7 @@ The expression `stay on track` is often used to talk about continuing to do the # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e121b714602846fe2ce32.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e121b714602846fe2ce32.md index 104d03b6a7b..5c148ad607c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e121b714602846fe2ce32.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e121b714602846fe2ce32.md @@ -1,6 +1,6 @@ --- id: 657e121b714602846fe2ce32 -title: Task 16 +title: Tarefa 16 challengeType: 22 dashedName: task-16 --- @@ -13,7 +13,7 @@ The present simple tense is used to talk about regular actions or routines. In a # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e15f175ecdf90b583ed01.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e15f175ecdf90b583ed01.md index 44d74c16971..bc5d96e9613 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e15f175ecdf90b583ed01.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e15f175ecdf90b583ed01.md @@ -1,6 +1,6 @@ --- id: 657e15f175ecdf90b583ed01 -title: Task 17 +title: Tarefa 17 challengeType: 19 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1a573140a49f09e30f6e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1a573140a49f09e30f6e.md index 385664c09d0..dfe4c777150 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1a573140a49f09e30f6e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1a573140a49f09e30f6e.md @@ -1,6 +1,6 @@ --- id: 657e1a573140a49f09e30f6e -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1baa6a02c1a5b9a1157f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1baa6a02c1a5b9a1157f.md index e6fcec09389..ae377f31288 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1baa6a02c1a5b9a1157f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1baa6a02c1a5b9a1157f.md @@ -13,7 +13,7 @@ Asking questions about someone's routines is a common way to learn more about th # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1bd636d5d3a7085a6876.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1bd636d5d3a7085a6876.md index 711b99bef3d..3b2e2ac7d94 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1bd636d5d3a7085a6876.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1bd636d5d3a7085a6876.md @@ -1,6 +1,6 @@ --- id: 657e1bd636d5d3a7085a6876 -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- @@ -15,7 +15,7 @@ For example, `I bring my phone to work every day.` It's often used when talking # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1c94a89349aba3fec825.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1c94a89349aba3fec825.md index 114b1f33b63..a51caa690ea 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1c94a89349aba3fec825.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1c94a89349aba3fec825.md @@ -1,6 +1,6 @@ --- id: 657e1c94a89349aba3fec825 -title: Task 23 +title: Tarefa 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1fd7b5ffaebc0ff4bd9f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1fd7b5ffaebc0ff4bd9f.md index 7a2887b13f6..479cf69838f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1fd7b5ffaebc0ff4bd9f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e1fd7b5ffaebc0ff4bd9f.md @@ -1,6 +1,6 @@ --- id: 657e1fd7b5ffaebc0ff4bd9f -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e204159a66dbdc258fe71.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e204159a66dbdc258fe71.md index 8f9aa236120..801efbba9b3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e204159a66dbdc258fe71.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e204159a66dbdc258fe71.md @@ -7,11 +7,11 @@ dashedName: dialogue-2-anna-from-hr-tells-tom-about-the-company-routine # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e251157e07ecca1047516.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e251157e07ecca1047516.md index fb92673c453..0d9f4873c81 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e251157e07ecca1047516.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e251157e07ecca1047516.md @@ -13,7 +13,7 @@ Checking emails: To look at and read new messages in your email account. Example # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e268215a9ebd3abad146f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e268215a9ebd3abad146f.md index 1216e0c9f80..420354e35d7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e268215a9ebd3abad146f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e268215a9ebd3abad146f.md @@ -1,6 +1,6 @@ --- id: 657e268215a9ebd3abad146f -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e270fae538dd663360e65.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e270fae538dd663360e65.md index 077d0e0bce3..3046abad735 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e270fae538dd663360e65.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e270fae538dd663360e65.md @@ -1,6 +1,6 @@ --- id: 657e270fae538dd663360e65 -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- @@ -19,7 +19,7 @@ Anna: After that, you'll probably attend the daily team meeting at 9:30. --> # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e29a26f65fae11f8721f8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e29a26f65fae11f8721f8.md index 00b7dde2801..f4b62f1402a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e29a26f65fae11f8721f8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e29a26f65fae11f8721f8.md @@ -1,6 +1,6 @@ --- id: 657e29a26f65fae11f8721f8 -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e2b41d0dd50e9fa123272.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e2b41d0dd50e9fa123272.md index 3591fd80cd6..e21fbbd9b44 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e2b41d0dd50e9fa123272.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e2b41d0dd50e9fa123272.md @@ -1,6 +1,6 @@ --- id: 657e2b41d0dd50e9fa123272 -title: Task 36 +title: Tarefa 36 challengeType: 19 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e2d40be7141f2c8cc9cc0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e2d40be7141f2c8cc9cc0.md index 2fa162f81d7..158b1adc1f7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e2d40be7141f2c8cc9cc0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e2d40be7141f2c8cc9cc0.md @@ -23,7 +23,7 @@ Review the table of adverbs below. # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e312bc450e802af97847d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e312bc450e802af97847d.md index 5cf98ff86ca..90956e64525 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e312bc450e802af97847d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e312bc450e802af97847d.md @@ -1,6 +1,6 @@ --- id: 657e312bc450e802af97847d -title: Task 43 +title: Tarefa 43 challengeType: 19 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e335be2fe7e0d2839a072.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e335be2fe7e0d2839a072.md index ac8f6ba1d47..d53a115175b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e335be2fe7e0d2839a072.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e335be2fe7e0d2839a072.md @@ -7,11 +7,11 @@ dashedName: dialogue-3-jake-tells-sophie-about-his-routine # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e358a40dd95143df6fe26.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e358a40dd95143df6fe26.md index 44033cb669d..3d16f6ee0c9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e358a40dd95143df6fe26.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e358a40dd95143df6fe26.md @@ -1,6 +1,6 @@ --- id: 657e358a40dd95143df6fe26 -title: Task 46 +title: Tarefa 46 challengeType: 19 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3a47f9d60c2b0ab6ce73.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3a47f9d60c2b0ab6ce73.md index 32babc4276a..63e1290c7ab 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3a47f9d60c2b0ab6ce73.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3a47f9d60c2b0ab6ce73.md @@ -1,6 +1,6 @@ --- id: 657e3a47f9d60c2b0ab6ce73 -title: Task 49 +title: Tarefa 49 challengeType: 22 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ab81d30a72de2311284.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ab81d30a72de2311284.md index 2676d6fb1de..a25b82581fd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ab81d30a72de2311284.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ab81d30a72de2311284.md @@ -1,6 +1,6 @@ --- id: 657e3ab81d30a72de2311284 -title: Task 50 +title: Tarefa 50 challengeType: 19 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ba6795db234adf14c0a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ba6795db234adf14c0a.md index 17d39cbaf3c..7a14cb93442 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ba6795db234adf14c0a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ba6795db234adf14c0a.md @@ -1,6 +1,6 @@ --- id: 657e3ba6795db234adf14c0a -title: Task 52 +title: Tarefa 52 challengeType: 19 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ef7d1c8f445c9d9f2cd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ef7d1c8f445c9d9f2cd.md index 444b2cf1daa..9d193c9eae4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ef7d1c8f445c9d9f2cd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3ef7d1c8f445c9d9f2cd.md @@ -1,6 +1,6 @@ --- id: 657e3ef7d1c8f445c9d9f2cd -title: Task 55 +title: Tarefa 55 challengeType: 19 dashedName: task-55 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3f7e50ac0549666b4b64.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3f7e50ac0549666b4b64.md index 6de3e8e2074..4c7e15e7b42 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3f7e50ac0549666b4b64.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e3f7e50ac0549666b4b64.md @@ -1,6 +1,6 @@ --- id: 657e3f7e50ac0549666b4b64 -title: Task 56 +title: Tarefa 56 challengeType: 22 dashedName: task-56 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e408655f2764fac4efa29.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e408655f2764fac4efa29.md index 013984772cf..2a770639b98 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e408655f2764fac4efa29.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e408655f2764fac4efa29.md @@ -1,6 +1,6 @@ --- id: 657e408655f2764fac4efa29 -title: Task 58 +title: Tarefa 58 challengeType: 19 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e431551f0835bbec6ccad.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e431551f0835bbec6ccad.md index 9228dc76020..2f4bbc343fa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e431551f0835bbec6ccad.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e431551f0835bbec6ccad.md @@ -1,6 +1,6 @@ --- id: 657e431551f0835bbec6ccad -title: Task 59 +title: Tarefa 59 challengeType: 19 dashedName: task-59 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e449348a16b62e1f8cac6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e449348a16b62e1f8cac6.md index ac0fe928cb9..d4acbe1fa22 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e449348a16b62e1f8cac6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e449348a16b62e1f8cac6.md @@ -1,6 +1,6 @@ --- id: 657e449348a16b62e1f8cac6 -title: Task 61 +title: Tarefa 61 challengeType: 19 dashedName: task-61 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e44fe476035667aab9114.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e44fe476035667aab9114.md index 97af735be93..da3e848b7e1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e44fe476035667aab9114.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e44fe476035667aab9114.md @@ -1,6 +1,6 @@ --- id: 657e44fe476035667aab9114 -title: Task 62 +title: Tarefa 62 challengeType: 22 dashedName: task-62 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e48135e86b276b6e233b5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e48135e86b276b6e233b5.md index 14b3b80da0b..4012908e213 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e48135e86b276b6e233b5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e48135e86b276b6e233b5.md @@ -1,6 +1,6 @@ --- id: 657e48135e86b276b6e233b5 -title: Task 65 +title: Tarefa 65 challengeType: 22 dashedName: task-65 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e48ce19fca47b034d11eb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e48ce19fca47b034d11eb.md index e7fd51ed8d2..9a551cbecb9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e48ce19fca47b034d11eb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e48ce19fca47b034d11eb.md @@ -1,6 +1,6 @@ --- id: 657e48ce19fca47b034d11eb -title: Task 66 +title: Tarefa 66 challengeType: 22 dashedName: task-66 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4964fa7c9b7e6aa7428c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4964fa7c9b7e6aa7428c.md index 459e131973f..c42dbd8634d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4964fa7c9b7e6aa7428c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4964fa7c9b7e6aa7428c.md @@ -7,7 +7,7 @@ dashedName: task-67 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4a245cc71782126b3316.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4a245cc71782126b3316.md index aa36c51f50a..07fe12f8bb4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4a245cc71782126b3316.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4a245cc71782126b3316.md @@ -1,6 +1,6 @@ --- id: 657e4a245cc71782126b3316 -title: Task 68 +title: Tarefa 68 challengeType: 19 dashedName: task-68 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4a824ba68884c14f68b9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4a824ba68884c14f68b9.md index 378abb3244e..83ce4c07107 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4a824ba68884c14f68b9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4a824ba68884c14f68b9.md @@ -15,7 +15,7 @@ For example, `The project goes as expected` means the project is proceeding acco # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4bdba35dc68e1977e5d5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4bdba35dc68e1977e5d5.md index 0a4cc1342d9..2f47587d594 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4bdba35dc68e1977e5d5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e4bdba35dc68e1977e5d5.md @@ -7,11 +7,11 @@ dashedName: dialogue-4-james-explains-compliance # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e51344c206eabd5ffb872.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e51344c206eabd5ffb872.md index ac3df0600e6..5bbbb088f79 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e51344c206eabd5ffb872.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e51344c206eabd5ffb872.md @@ -9,7 +9,7 @@ dashedName: task-73 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5280003334b1726df8a2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5280003334b1726df8a2.md index 2e713f53ebd..22ea78bf9a0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5280003334b1726df8a2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5280003334b1726df8a2.md @@ -13,7 +13,7 @@ Understanding the concept of compliance in the workplace involves knowing about # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e551a5b6002c060324a6a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e551a5b6002c060324a6a.md index 48e90ec958e..f4bb4d88868 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e551a5b6002c060324a6a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e551a5b6002c060324a6a.md @@ -9,7 +9,7 @@ dashedName: task-83 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e56a042c7dec7005c3db0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e56a042c7dec7005c3db0.md index f3fb83a9ec0..2e884a1614c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e56a042c7dec7005c3db0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e56a042c7dec7005c3db0.md @@ -1,6 +1,6 @@ --- id: 657e56a042c7dec7005c3db0 -title: Task 85 +title: Tarefa 85 challengeType: 22 dashedName: task-85 --- @@ -9,7 +9,7 @@ dashedName: task-85 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e57b99282f8cd922a5f9a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e57b99282f8cd922a5f9a.md index 0d57679eeb6..6e8a567663c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e57b99282f8cd922a5f9a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e57b99282f8cd922a5f9a.md @@ -9,7 +9,7 @@ dashedName: task-87 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e581f01bedfd00d3d57ce.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e581f01bedfd00d3d57ce.md index 0c74b8ceb3c..cbe9394ab6b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e581f01bedfd00d3d57ce.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e581f01bedfd00d3d57ce.md @@ -1,6 +1,6 @@ --- id: 657e581f01bedfd00d3d57ce -title: Task 88 +title: Tarefa 88 challengeType: 19 dashedName: task-88 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5879357fe6d2bbbdc2f0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5879357fe6d2bbbdc2f0.md index 963f33b0097..11347667af3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5879357fe6d2bbbdc2f0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5879357fe6d2bbbdc2f0.md @@ -9,7 +9,7 @@ dashedName: task-89 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e597aecc28ed883309243.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e597aecc28ed883309243.md index 484c31c726e..680f4d57721 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e597aecc28ed883309243.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e597aecc28ed883309243.md @@ -9,7 +9,7 @@ dashedName: task-91 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5af613558ce1f6e1d501.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5af613558ce1f6e1d501.md index 94a886110c9..274b2314339 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5af613558ce1f6e1d501.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5af613558ce1f6e1d501.md @@ -1,6 +1,6 @@ --- id: 657e5af613558ce1f6e1d501 -title: Task 94 +title: Tarefa 94 challengeType: 19 dashedName: task-94 --- @@ -11,7 +11,7 @@ A `security incident` is an event that may be harmful to the safety or security Note on `Harm` and `Harmful`: -`Harm` means damage or injury to someone or something. It refers to causing a negative effect or putting someone or something at risk. For example: +`Harm` means damage or injury to someone or something. It refers to causing a negative effect or putting someone or something at risk. Por exemplo: `Touching hot surfaces can cause harm,` means that touching hot surfaces can lead to injury or damage. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5b73dc178de57e830212.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5b73dc178de57e830212.md index d6d719f6b6a..cd0a2fd868f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5b73dc178de57e830212.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5b73dc178de57e830212.md @@ -1,6 +1,6 @@ --- id: 657e5b73dc178de57e830212 -title: Task 95 +title: Tarefa 95 challengeType: 22 dashedName: task-95 --- @@ -9,7 +9,7 @@ dashedName: task-95 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5bb8ac166ee76a69be96.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5bb8ac166ee76a69be96.md index bd3aaa4c2ae..8da33b68edd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5bb8ac166ee76a69be96.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5bb8ac166ee76a69be96.md @@ -11,7 +11,7 @@ dashedName: task-96 An `incident` is normally an event that happens and is out of the ordinary sequence of events, more often than not causing trouble ot harm to someone. Example: `Many people lost their homes after the flood last week. What an unfortunate incident.` -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5c296bdba2ea26c67ca0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5c296bdba2ea26c67ca0.md index 083bdeb05d7..fd9006e8b1c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5c296bdba2ea26c67ca0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5c296bdba2ea26c67ca0.md @@ -1,6 +1,6 @@ --- id: 657e5c296bdba2ea26c67ca0 -title: Task 97 +title: Tarefa 97 challengeType: 19 dashedName: task-97 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5c7a5c7ef6ec6f39dc5e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5c7a5c7ef6ec6f39dc5e.md index 2de0164717c..dde3e55186a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5c7a5c7ef6ec6f39dc5e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5c7a5c7ef6ec6f39dc5e.md @@ -1,6 +1,6 @@ --- id: 657e5c7a5c7ef6ec6f39dc5e -title: Task 98 +title: Tarefa 98 challengeType: 19 dashedName: task-98 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5d8f7f2274f2b1a8efcc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5d8f7f2274f2b1a8efcc.md index 5445709db15..2df75942e3d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5d8f7f2274f2b1a8efcc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5d8f7f2274f2b1a8efcc.md @@ -1,6 +1,6 @@ --- id: 657e5d8f7f2274f2b1a8efcc -title: Task 100 +title: Tarefa 100 challengeType: 19 dashedName: task-100 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5e0bd4e460f5ecfa01f4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5e0bd4e460f5ecfa01f4.md index 74c077d037e..906fd9711fb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5e0bd4e460f5ecfa01f4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5e0bd4e460f5ecfa01f4.md @@ -1,6 +1,6 @@ --- id: 657e5e0bd4e460f5ecfa01f4 -title: Task 101 +title: Tarefa 101 challengeType: 22 dashedName: task-101 --- @@ -15,7 +15,7 @@ In conversations, especially about rules or procedures at work, `every` and `any # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5e6fcabbfbf844429629.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5e6fcabbfbf844429629.md index 22bc6dfca52..c539c7d2fb2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5e6fcabbfbf844429629.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5e6fcabbfbf844429629.md @@ -1,6 +1,6 @@ --- id: 657e5e6fcabbfbf844429629 -title: Task 102 +title: Tarefa 102 challengeType: 22 dashedName: task-102 --- @@ -9,7 +9,7 @@ dashedName: task-102 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5fa49b69deff5e9bff8e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5fa49b69deff5e9bff8e.md index e0bda55cc99..0c43d607cec 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5fa49b69deff5e9bff8e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e5fa49b69deff5e9bff8e.md @@ -9,7 +9,7 @@ dashedName: task-104 # --description-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e600a30c66c02e04b704d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e600a30c66c02e04b704d.md index e980ef7c39a..87fe6493730 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e600a30c66c02e04b704d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e600a30c66c02e04b704d.md @@ -1,6 +1,6 @@ --- id: 657e600a30c66c02e04b704d -title: Task 105 +title: Tarefa 105 challengeType: 19 dashedName: task-105 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6117bebfda097995f2b7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6117bebfda097995f2b7.md index 1e187fa26a3..9ab9cff2115 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6117bebfda097995f2b7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6117bebfda097995f2b7.md @@ -13,7 +13,7 @@ Listening to details about job requirements, like how often to attend training a # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e61ba2a53680d1a540bfe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e61ba2a53680d1a540bfe.md index 7a999f4248f..4846bd790f1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e61ba2a53680d1a540bfe.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e61ba2a53680d1a540bfe.md @@ -1,6 +1,6 @@ --- id: 657e61ba2a53680d1a540bfe -title: Task 108 +title: Tarefa 108 challengeType: 22 dashedName: task-108 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6247e4566c108b138f35.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6247e4566c108b138f35.md index 52e103abed9..85e077c7679 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6247e4566c108b138f35.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6247e4566c108b138f35.md @@ -7,11 +7,11 @@ dashedName: dialogue-5-brian-asks-sarah-about-her-routine-as-a-qa-tester # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6ffb22adc44942ceb5d4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6ffb22adc44942ceb5d4.md index a08118f47de..2a6f16d9aef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6ffb22adc44942ceb5d4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e6ffb22adc44942ceb5d4.md @@ -1,6 +1,6 @@ --- id: 657e6ffb22adc44942ceb5d4 -title: Task 113 +title: Tarefa 113 challengeType: 22 dashedName: task-113 --- @@ -15,7 +15,7 @@ See if you can get these words right. # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e736ce426b15d9f3a3f99.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e736ce426b15d9f3a3f99.md index 9988eacb63c..cae677ecbf1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e736ce426b15d9f3a3f99.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e736ce426b15d9f3a3f99.md @@ -1,6 +1,6 @@ --- id: 657e736ce426b15d9f3a3f99 -title: Task 122 +title: Tarefa 122 challengeType: 19 dashedName: task-122 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e74a56fc5b6648a8140e5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e74a56fc5b6648a8140e5.md index 76ff5058006..c876ed4f17d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e74a56fc5b6648a8140e5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e74a56fc5b6648a8140e5.md @@ -1,6 +1,6 @@ --- id: 657e74a56fc5b6648a8140e5 -title: Task 125 +title: Tarefa 125 challengeType: 19 dashedName: task-125 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e759a72dd0c67f8992ff5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e759a72dd0c67f8992ff5.md index 8a544667434..1475d917ebb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e759a72dd0c67f8992ff5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e759a72dd0c67f8992ff5.md @@ -11,7 +11,7 @@ Sarah's role as a QA tester involves various tasks related to software testing. # --instructions-- -Listen to the audio to complete the sentence below. +Ouça o áudio para completar a frase abaixo. # --fillInTheBlank-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e76b48cd1db6c9f04a27a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e76b48cd1db6c9f04a27a.md index 3a15d707784..2acb3d04cc4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e76b48cd1db6c9f04a27a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-a-typical-workday-and-tasks/657e76b48cd1db6c9f04a27a.md @@ -1,6 +1,6 @@ --- id: 657e76b48cd1db6c9f04a27a -title: Task 128 +title: Tarefa 128 challengeType: 19 dashedName: task-128 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d4ea39262ba758c15bc1a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d4ea39262ba758c15bc1a.md index 97bfe937e60..3e8e3e7a24f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d4ea39262ba758c15bc1a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d4ea39262ba758c15bc1a.md @@ -7,11 +7,11 @@ dashedName: dialogue-1-an-interest-in-photography # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5c9008b25e85e95ce60b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5c9008b25e85e95ce60b.md index af200d27368..8cc79057f0e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5c9008b25e85e95ce60b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5c9008b25e85e95ce60b.md @@ -1,6 +1,6 @@ --- id: 657d5c9008b25e85e95ce60b -title: Task 5 +title: Tarefa 5 challengeType: 22 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5dc51cf88187cbf7d27c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5dc51cf88187cbf7d27c.md index a587ce54e90..81c7982e502 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5dc51cf88187cbf7d27c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5dc51cf88187cbf7d27c.md @@ -1,6 +1,6 @@ --- id: 657d5dc51cf88187cbf7d27c -title: Task 6 +title: Tarefa 6 challengeType: 19 dashedName: task-6 --- @@ -11,7 +11,7 @@ The *Present Perfect Tense* is formed using the auxiliary verb `have` or `has` w To form it, use `have` with `I`, `you`, `we`, `they`, and `has` with `he`, `she`, `it`. Add the past participle next. -For regular verbs, it's usually the verb plus `-ed` (like `walked`), but for irregular verbs, it can vary (like `seen` from `see`). For example: +For regular verbs, it's usually the verb plus `-ed` (like `walked`), but for irregular verbs, it can vary (like `seen` from `see`). Por exemplo: `I have walked to the park` or `She has seen the movie`. This tense is helpful in discussing past actions with current relevance. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5e32e50d15885265eb30.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5e32e50d15885265eb30.md index f4e14948db0..c9b2422420a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5e32e50d15885265eb30.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5e32e50d15885265eb30.md @@ -1,6 +1,6 @@ --- id: 657d5e32e50d15885265eb30 -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- @@ -9,7 +9,7 @@ dashedName: task-7 In the Present Perfect Tense, you can contract `have` to `'ve` after `I`, `you`, `we` or `they`, and `has` to `'s` after `he`, `she` or `it`. -For example: +Por exemplo: - `I've walked to the park.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5eafe5e79d88d2b6328e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5eafe5e79d88d2b6328e.md index 94d34158537..1938f113fbf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5eafe5e79d88d2b6328e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d5eafe5e79d88d2b6328e.md @@ -1,6 +1,6 @@ --- id: 657d5eafe5e79d88d2b6328e -title: Task 9 +title: Tarefa 9 challengeType: 19 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d6008a37af78962d30873.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d6008a37af78962d30873.md index c135b94f562..e813b1e8746 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d6008a37af78962d30873.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d6008a37af78962d30873.md @@ -1,6 +1,6 @@ --- id: 657d6008a37af78962d30873 -title: Task 8 +title: Tarefa 8 challengeType: 22 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d777c3a22758abc00a183.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d777c3a22758abc00a183.md index 5ceb8eae174..184a44f6086 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d777c3a22758abc00a183.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d777c3a22758abc00a183.md @@ -1,6 +1,6 @@ --- id: 657d777c3a22758abc00a183 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7892712a078b33d7e8a7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7892712a078b33d7e8a7.md index 39d091276eb..66dc177dac2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7892712a078b33d7e8a7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7892712a078b33d7e8a7.md @@ -1,6 +1,6 @@ --- id: 657d7892712a078b33d7e8a7 -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d791a78ae2a8bb7416ad7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d791a78ae2a8bb7416ad7.md index 79699dd07cc..13dd34c4ccf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d791a78ae2a8bb7416ad7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d791a78ae2a8bb7416ad7.md @@ -1,6 +1,6 @@ --- id: 657d791a78ae2a8bb7416ad7 -title: Task 12 +title: Tarefa 12 challengeType: 22 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7a4ad41e438c5be0a138.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7a4ad41e438c5be0a138.md index 8d49a4be0c9..3a639de3529 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7a4ad41e438c5be0a138.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7a4ad41e438c5be0a138.md @@ -1,6 +1,6 @@ --- id: 657d7a4ad41e438c5be0a138 -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7b217b77cf8cf1969713.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7b217b77cf8cf1969713.md index 837db81930f..4bb96397cb1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7b217b77cf8cf1969713.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7b217b77cf8cf1969713.md @@ -1,6 +1,6 @@ --- id: 657d7b217b77cf8cf1969713 -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9af10739f78d5401ad1d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9af10739f78d5401ad1d.md index f0a0524236c..3e13d6f04bb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9af10739f78d5401ad1d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9af10739f78d5401ad1d.md @@ -1,6 +1,6 @@ --- id: 657d9af10739f78d5401ad1d -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9b88332ce98fc894db2c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9b88332ce98fc894db2c.md index 206f8b8de8a..b6c3843efba 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9b88332ce98fc894db2c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9b88332ce98fc894db2c.md @@ -1,6 +1,6 @@ --- id: 657d9b88332ce98fc894db2c -title: Task 15 +title: Tarefa 15 challengeType: 22 dashedName: task-15 --- @@ -13,7 +13,7 @@ The phrase `enjoy the most` is used to express a preference or favorite aspect o The word `most` in this phrase is a superlative, which means it shows the highest degree or the extreme level of something. -When you say `enjoy the most`, you're saying that out of all the things you enjoy, this one thing stands out as the one you like the best. For instance: +When you say `enjoy the most`, you're saying that out of all the things you enjoy, this one thing stands out as the one you like the best. Por exemplo: `I enjoy coding the most`, means that of all your activities or interests, coding is your favorite or the one that gives you the greatest pleasure. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9d6b3838fa9030d5b9d8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9d6b3838fa9030d5b9d8.md index 916a9d2623c..51272c7828b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9d6b3838fa9030d5b9d8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9d6b3838fa9030d5b9d8.md @@ -1,6 +1,6 @@ --- id: 657d9d6b3838fa9030d5b9d8 -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9dbe3f6a1b90f79d81f2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9dbe3f6a1b90f79d81f2.md index 77168ff13d1..5e2bfa0eb74 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9dbe3f6a1b90f79d81f2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9dbe3f6a1b90f79d81f2.md @@ -1,6 +1,6 @@ --- id: 657d9dbe3f6a1b90f79d81f2 -title: Task 17 +title: Tarefa 17 challengeType: 19 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9e7fd1b3fa915c3c1401.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9e7fd1b3fa915c3c1401.md index 8c5e2697567..5b8e231c945 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9e7fd1b3fa915c3c1401.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9e7fd1b3fa915c3c1401.md @@ -1,6 +1,6 @@ --- id: 657d9e7fd1b3fa915c3c1401 -title: Task 18 +title: Tarefa 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9eed9f6a5a91c7c5f210.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9eed9f6a5a91c7c5f210.md index 0789efd3c72..8689bdd646c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9eed9f6a5a91c7c5f210.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9eed9f6a5a91c7c5f210.md @@ -1,6 +1,6 @@ --- id: 657d9eed9f6a5a91c7c5f210 -title: Task 19 +title: Tarefa 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9f77e8d77292246e5679.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9f77e8d77292246e5679.md index e8c587ea193..8789417f607 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9f77e8d77292246e5679.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9f77e8d77292246e5679.md @@ -1,6 +1,6 @@ --- id: 657d9f77e8d77292246e5679 -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da01f0bb64c927f6d84c3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da01f0bb64c927f6d84c3.md index ea053a3112a..176cb4fd408 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da01f0bb64c927f6d84c3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da01f0bb64c927f6d84c3.md @@ -1,6 +1,6 @@ --- id: 657da01f0bb64c927f6d84c3 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0838dfc7992f94c7df9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0838dfc7992f94c7df9.md index 506753255d3..9e0b981d3f1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0838dfc7992f94c7df9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0838dfc7992f94c7df9.md @@ -1,6 +1,6 @@ --- id: 657da0838dfc7992f94c7df9 -title: Task 23 +title: Tarefa 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0ec9f3a5a936a6cd54d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0ec9f3a5a936a6cd54d.md index 02935e01957..d69766f6d88 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0ec9f3a5a936a6cd54d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0ec9f3a5a936a6cd54d.md @@ -1,6 +1,6 @@ --- id: 657da0ec9f3a5a936a6cd54d -title: Task 24 +title: Tarefa 24 challengeType: 22 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da1d38bf3e693eb579be9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da1d38bf3e693eb579be9.md index d222541390f..158f5f5b55c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da1d38bf3e693eb579be9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da1d38bf3e693eb579be9.md @@ -1,6 +1,6 @@ --- id: 657da1d38bf3e693eb579be9 -title: Task 25 +title: Tarefa 25 challengeType: 22 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da2e3cf29239535791805.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da2e3cf29239535791805.md index 0240a1bc88b..0888a1b653d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da2e3cf29239535791805.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da2e3cf29239535791805.md @@ -7,11 +7,11 @@ dashedName: dialogue-2-the-bike-rider # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da34294cbf695b2bfe889.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da34294cbf695b2bfe889.md index ba595a32fda..08ad6f15cea 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da34294cbf695b2bfe889.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da34294cbf695b2bfe889.md @@ -1,6 +1,6 @@ --- id: 657da34294cbf695b2bfe889 -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e758778ff8dc01567c9e7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e758778ff8dc01567c9e7.md index cb31c71043b..bb716ae12a5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e758778ff8dc01567c9e7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e758778ff8dc01567c9e7.md @@ -1,6 +1,6 @@ --- id: 657e758778ff8dc01567c9e7 -title: Task 27 +title: Tarefa 27 challengeType: 19 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76356b6af6c07fe338c1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76356b6af6c07fe338c1.md index eec16b2b3ed..47b7e04854b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76356b6af6c07fe338c1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76356b6af6c07fe338c1.md @@ -1,6 +1,6 @@ --- id: 657e76356b6af6c07fe338c1 -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76d866ebcec0e44d0748.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76d866ebcec0e44d0748.md index 20172e2185b..0d2b80c82d5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76d866ebcec0e44d0748.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76d866ebcec0e44d0748.md @@ -1,6 +1,6 @@ --- id: 657e76d866ebcec0e44d0748 -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77615bb8dec146e91f96.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77615bb8dec146e91f96.md index 18931d81318..93aed76c432 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77615bb8dec146e91f96.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77615bb8dec146e91f96.md @@ -1,6 +1,6 @@ --- id: 657e77615bb8dec146e91f96 -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 --- @@ -23,7 +23,7 @@ Listen to the audio. Linda uses a specific expression to invite someone politely ### --feedback-- -Think of a word that begins a polite question, usually used to offer a choice or ask for a decision. This word is capitalized. +Think of a word that begins a polite question, usually used to offer a choice or ask for a decision. Esta palavra inicia com letra maiúscula. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77d93552a0c1b00f775a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77d93552a0c1b00f775a.md index 9760e4857f0..e6a010257cf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77d93552a0c1b00f775a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77d93552a0c1b00f775a.md @@ -1,6 +1,6 @@ --- id: 657e77d93552a0c1b00f775a -title: Task 30 +title: Tarefa 30 challengeType: 19 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e786b51f7eac240e92bcc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e786b51f7eac240e92bcc.md index 4c19b259117..5ae3b6b17d8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e786b51f7eac240e92bcc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e786b51f7eac240e92bcc.md @@ -1,6 +1,6 @@ --- id: 657e786b51f7eac240e92bcc -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e7a17f47a8fc2d037f48e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e7a17f47a8fc2d037f48e.md index bfb740a2d08..df0c780162f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e7a17f47a8fc2d037f48e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e7a17f47a8fc2d037f48e.md @@ -1,6 +1,6 @@ --- id: 657e7a17f47a8fc2d037f48e -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea8c4a679bbc40a7aef26.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea8c4a679bbc40a7aef26.md index 09e4430931c..3d595b0138c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea8c4a679bbc40a7aef26.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea8c4a679bbc40a7aef26.md @@ -1,6 +1,6 @@ --- id: 657ea8c4a679bbc40a7aef26 -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea950baa4a8c48e39d031.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea950baa4a8c48e39d031.md index 063a27766a9..b0faf79debe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea950baa4a8c48e39d031.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea950baa4a8c48e39d031.md @@ -1,6 +1,6 @@ --- id: 657ea950baa4a8c48e39d031 -title: Task 35 +title: Tarefa 35 challengeType: 22 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea9f6e0214dc4f84c8229.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea9f6e0214dc4f84c8229.md index 3b1a119cfd8..300bcf3ce03 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea9f6e0214dc4f84c8229.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea9f6e0214dc4f84c8229.md @@ -1,6 +1,6 @@ --- id: 657ea9f6e0214dc4f84c8229 -title: Task 36 +title: Tarefa 36 challengeType: 19 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec57a0ab01cc7af71f565.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec57a0ab01cc7af71f565.md index c50194b59ce..07a84859c2b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec57a0ab01cc7af71f565.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec57a0ab01cc7af71f565.md @@ -1,6 +1,6 @@ --- id: 657ec57a0ab01cc7af71f565 -title: Task 37 +title: Tarefa 37 challengeType: 19 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec62074e77dc82b0f05e7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec62074e77dc82b0f05e7.md index 5c10c0a32ab..9519f77defa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec62074e77dc82b0f05e7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec62074e77dc82b0f05e7.md @@ -1,6 +1,6 @@ --- id: 657ec62074e77dc82b0f05e7 -title: Task 38 +title: Tarefa 38 challengeType: 19 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec6ac4de4eac8bab2f2a7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec6ac4de4eac8bab2f2a7.md index 5dfa23f3775..9a3ab19cc02 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec6ac4de4eac8bab2f2a7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec6ac4de4eac8bab2f2a7.md @@ -1,6 +1,6 @@ --- id: 657ec6ac4de4eac8bab2f2a7 -title: Task 39 +title: Tarefa 39 challengeType: 22 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eda6e48e0d7c92f0af163.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eda6e48e0d7c92f0af163.md index 46469c037ac..3f2fd811b11 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eda6e48e0d7c92f0af163.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eda6e48e0d7c92f0af163.md @@ -1,6 +1,6 @@ --- id: 657eda6e48e0d7c92f0af163 -title: Task 40 +title: Tarefa 40 challengeType: 22 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edbc3e12e35cfc1d80358.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edbc3e12e35cfc1d80358.md index 14171d204fb..be204700f80 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edbc3e12e35cfc1d80358.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edbc3e12e35cfc1d80358.md @@ -1,6 +1,6 @@ --- id: 657edbc3e12e35cfc1d80358 -title: Task 41 +title: Tarefa 41 challengeType: 19 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edc5136791ed04ffab234.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edc5136791ed04ffab234.md index 06f9c1d3f08..d24c59d3985 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edc5136791ed04ffab234.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edc5136791ed04ffab234.md @@ -1,6 +1,6 @@ --- id: 657edc5136791ed04ffab234 -title: Task 42 +title: Tarefa 42 challengeType: 19 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee0a0c52d0ed1164a85d8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee0a0c52d0ed1164a85d8.md index aac463633bb..9485a0ab46b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee0a0c52d0ed1164a85d8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee0a0c52d0ed1164a85d8.md @@ -1,6 +1,6 @@ --- id: 657ee0a0c52d0ed1164a85d8 -title: Task 43 +title: Tarefa 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee214b9ad1ad2b6f8325c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee214b9ad1ad2b6f8325c.md index 74d0a54bbec..1a024ccaa5d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee214b9ad1ad2b6f8325c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee214b9ad1ad2b6f8325c.md @@ -1,6 +1,6 @@ --- id: 657ee214b9ad1ad2b6f8325c -title: Task 44 +title: Tarefa 44 challengeType: 19 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee25acee11cd3122e0876.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee25acee11cd3122e0876.md index 9fdb82ad764..013c5009375 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee25acee11cd3122e0876.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee25acee11cd3122e0876.md @@ -1,6 +1,6 @@ --- id: 657ee25acee11cd3122e0876 -title: Task 45 +title: Tarefa 45 challengeType: 19 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee2f44346f3d4017cc990.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee2f44346f3d4017cc990.md index 40223103ff7..521e252f281 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee2f44346f3d4017cc990.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee2f44346f3d4017cc990.md @@ -1,6 +1,6 @@ --- id: 657ee2f44346f3d4017cc990 -title: Task 46 +title: Tarefa 46 challengeType: 19 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee3954d64e5d465500620.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee3954d64e5d465500620.md index 5b4fe11bcbb..05944f4220b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee3954d64e5d465500620.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee3954d64e5d465500620.md @@ -1,6 +1,6 @@ --- id: 657ee3954d64e5d465500620 -title: Task 47 +title: Tarefa 47 challengeType: 19 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee4171371e9d4d1402e91.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee4171371e9d4d1402e91.md index 8d736f77387..7cd36bb4312 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee4171371e9d4d1402e91.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee4171371e9d4d1402e91.md @@ -1,6 +1,6 @@ --- id: 657ee4171371e9d4d1402e91 -title: Task 48 +title: Tarefa 48 challengeType: 22 dashedName: task-48 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee47c1af836d5289254d9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee47c1af836d5289254d9.md index 470f1aff1c6..318fab38b76 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee47c1af836d5289254d9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee47c1af836d5289254d9.md @@ -1,6 +1,6 @@ --- id: 657ee47c1af836d5289254d9 -title: Task 49 +title: Tarefa 49 challengeType: 19 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee51ce8dac8d5a227f758.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee51ce8dac8d5a227f758.md index c4b768a1d83..5ff6ad3b46a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee51ce8dac8d5a227f758.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee51ce8dac8d5a227f758.md @@ -1,6 +1,6 @@ --- id: 657ee51ce8dac8d5a227f758 -title: Task 50 +title: Tarefa 50 challengeType: 19 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee5ddb47b1dd62f87d784.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee5ddb47b1dd62f87d784.md index 7436492a5af..52afc85bcca 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee5ddb47b1dd62f87d784.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee5ddb47b1dd62f87d784.md @@ -1,6 +1,6 @@ --- id: 657ee5ddb47b1dd62f87d784 -title: Task 51 +title: Tarefa 51 challengeType: 19 dashedName: task-51 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee66dd1216ad6c61f1168.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee66dd1216ad6c61f1168.md index 04bcd34e56c..945d46b5dde 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee66dd1216ad6c61f1168.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee66dd1216ad6c61f1168.md @@ -1,6 +1,6 @@ --- id: 657ee66dd1216ad6c61f1168 -title: Task 52 +title: Tarefa 52 challengeType: 22 dashedName: task-52 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee781258676d764a5282f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee781258676d764a5282f.md index 309e2feed3a..a3749ba5f65 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee781258676d764a5282f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee781258676d764a5282f.md @@ -1,6 +1,6 @@ --- id: 657ee781258676d764a5282f -title: Task 53 +title: Tarefa 53 challengeType: 19 dashedName: task-53 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee8a9a195b8d8756ca5e1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee8a9a195b8d8756ca5e1.md index 023bf238948..92ff51e1506 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee8a9a195b8d8756ca5e1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee8a9a195b8d8756ca5e1.md @@ -1,6 +1,6 @@ --- id: 657ee8a9a195b8d8756ca5e1 -title: Task 54 +title: Tarefa 54 challengeType: 22 dashedName: task-54 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee957cb4719d9031a0be4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee957cb4719d9031a0be4.md index 208a950f0d5..5e964c2ad0d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee957cb4719d9031a0be4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee957cb4719d9031a0be4.md @@ -1,6 +1,6 @@ --- id: 657ee957cb4719d9031a0be4 -title: Task 55 +title: Tarefa 55 challengeType: 22 dashedName: task-55 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee9b69c2e26d964f67ee4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee9b69c2e26d964f67ee4.md index 26fa41db2d9..edbc8bff590 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee9b69c2e26d964f67ee4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee9b69c2e26d964f67ee4.md @@ -1,6 +1,6 @@ --- id: 657ee9b69c2e26d964f67ee4 -title: Task 56 +title: Tarefa 56 challengeType: 19 dashedName: task-56 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eeb163e1993d9e342d661.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eeb163e1993d9e342d661.md index 5821dfc0410..7abc03de5c4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eeb163e1993d9e342d661.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eeb163e1993d9e342d661.md @@ -1,6 +1,6 @@ --- id: 657eeb163e1993d9e342d661 -title: Task 57 +title: Tarefa 57 challengeType: 19 dashedName: task-57 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eebaa042b5cda6ec2dac9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eebaa042b5cda6ec2dac9.md index fbbbfb411c7..995646dbad2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eebaa042b5cda6ec2dac9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eebaa042b5cda6ec2dac9.md @@ -1,6 +1,6 @@ --- id: 657eebaa042b5cda6ec2dac9 -title: Task 58 +title: Tarefa 58 challengeType: 22 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eec0a21bc7adada04453e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eec0a21bc7adada04453e.md index 50d4d169f8b..a134acaeb81 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eec0a21bc7adada04453e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eec0a21bc7adada04453e.md @@ -1,6 +1,6 @@ --- id: 657eec0a21bc7adada04453e -title: Task 59 +title: Tarefa 59 challengeType: 19 dashedName: task-59 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eecb3b368badb3cc7fe4c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eecb3b368badb3cc7fe4c.md index 7cf33efa37c..3424eecc874 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eecb3b368badb3cc7fe4c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eecb3b368badb3cc7fe4c.md @@ -1,6 +1,6 @@ --- id: 657eecb3b368badb3cc7fe4c -title: Task 60 +title: Tarefa 60 challengeType: 22 dashedName: task-60 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eed5ed318e4dbbce6903a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eed5ed318e4dbbce6903a.md index 12dadb76038..031d899f5cb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eed5ed318e4dbbce6903a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eed5ed318e4dbbce6903a.md @@ -1,13 +1,13 @@ --- id: 657eed5ed318e4dbbce6903a -title: Task 61 +title: Tarefa 61 challengeType: 19 dashedName: task-61 --- # --description-- -The phrase `at least` is typically placed before the quantity, number, or degree it refers to. E.g. `She's attended at least eleven meetings last month.` +The phrase `at least` is typically placed before the quantity, number, or degree it refers to. Ex: `She's attended at least eleven meetings last month.` # --question-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef0061e99a3ddd0e1245f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef0061e99a3ddd0e1245f.md index fc1589c25e1..934215ff390 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef0061e99a3ddd0e1245f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef0061e99a3ddd0e1245f.md @@ -7,11 +7,11 @@ dashedName: dialogue-3-the-collector # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef4e5a4a1e1e126eba6dd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef4e5a4a1e1e126eba6dd.md index 5b0b685e920..ec6fbc80345 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef4e5a4a1e1e126eba6dd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef4e5a4a1e1e126eba6dd.md @@ -7,11 +7,11 @@ dashedName: dialogue-4-inviting-to-a-convention # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef58855ff45e1e4ca70ee.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef58855ff45e1e4ca70ee.md index 90070b98ade..bf1bbe210fb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef58855ff45e1e4ca70ee.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef58855ff45e1e4ca70ee.md @@ -1,6 +1,6 @@ --- id: 657ef58855ff45e1e4ca70ee -title: Task 62 +title: Tarefa 62 challengeType: 22 dashedName: task-62 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef61be0a682e2591776f6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef61be0a682e2591776f6.md index 0c9b5e46060..607e55c1bfb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef61be0a682e2591776f6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef61be0a682e2591776f6.md @@ -1,6 +1,6 @@ --- id: 657ef61be0a682e2591776f6 -title: Task 65 +title: Tarefa 65 challengeType: 19 dashedName: task-65 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb48f31654ae4cb52d395.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb48f31654ae4cb52d395.md index 1f1ea254881..bc1f6240cf6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb48f31654ae4cb52d395.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb48f31654ae4cb52d395.md @@ -1,6 +1,6 @@ --- id: 657fb48f31654ae4cb52d395 -title: Task 63 +title: Tarefa 63 challengeType: 22 dashedName: task-63 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5034da144e55cbee9d7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5034da144e55cbee9d7.md index e867b0fe26b..5494b4749e7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5034da144e55cbee9d7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5034da144e55cbee9d7.md @@ -1,6 +1,6 @@ --- id: 657fb5034da144e55cbee9d7 -title: Task 64 +title: Tarefa 64 challengeType: 19 dashedName: task-64 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5afeeba2de5d01dda0e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5afeeba2de5d01dda0e.md index de690f037e6..61df22eb48a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5afeeba2de5d01dda0e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5afeeba2de5d01dda0e.md @@ -1,6 +1,6 @@ --- id: 657fb5afeeba2de5d01dda0e -title: Task 79 +title: Tarefa 79 challengeType: 19 dashedName: task-79 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb665a39478e642f5a139.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb665a39478e642f5a139.md index fdb9a6e9c21..3d7a80e6763 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb665a39478e642f5a139.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb665a39478e642f5a139.md @@ -1,6 +1,6 @@ --- id: 657fb665a39478e642f5a139 -title: Task 67 +title: Tarefa 67 challengeType: 19 dashedName: task-67 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb8cfbd0e4ae797fc6077.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb8cfbd0e4ae797fc6077.md index 4eb6490a716..c9c47828a6e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb8cfbd0e4ae797fc6077.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb8cfbd0e4ae797fc6077.md @@ -1,6 +1,6 @@ --- id: 657fb8cfbd0e4ae797fc6077 -title: Task 66 +title: Tarefa 66 challengeType: 22 dashedName: task-66 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb92c6f888fe8013f1a28.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb92c6f888fe8013f1a28.md index 0a05cd2b9e4..9ae26f4cb0f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb92c6f888fe8013f1a28.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb92c6f888fe8013f1a28.md @@ -1,6 +1,6 @@ --- id: 657fb92c6f888fe8013f1a28 -title: Task 76 +title: Tarefa 76 challengeType: 19 dashedName: task-76 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb980a9b567e860b77f2c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb980a9b567e860b77f2c.md index 70046934f11..3b48ece8edf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb980a9b567e860b77f2c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb980a9b567e860b77f2c.md @@ -1,6 +1,6 @@ --- id: 657fb980a9b567e860b77f2c -title: Task 77 +title: Tarefa 77 challengeType: 22 dashedName: task-77 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fba163fec41e8e00c5817.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fba163fec41e8e00c5817.md index 95d530a9d20..3cb7aef8aa4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fba163fec41e8e00c5817.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fba163fec41e8e00c5817.md @@ -1,6 +1,6 @@ --- id: 657fba163fec41e8e00c5817 -title: Task 70 +title: Tarefa 70 challengeType: 19 dashedName: task-70 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbad88163d8e96189f823.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbad88163d8e96189f823.md index c9b710c70fb..47ee5b4ddb2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbad88163d8e96189f823.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbad88163d8e96189f823.md @@ -1,6 +1,6 @@ --- id: 657fbad88163d8e96189f823 -title: Task 68 +title: Tarefa 68 challengeType: 22 dashedName: task-68 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbb3a1a63d0e9c307fd83.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbb3a1a63d0e9c307fd83.md index 4f1d80e0b50..370d7bfa950 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbb3a1a63d0e9c307fd83.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbb3a1a63d0e9c307fd83.md @@ -1,6 +1,6 @@ --- id: 657fbb3a1a63d0e9c307fd83 -title: Task 69 +title: Tarefa 69 challengeType: 19 dashedName: task-69 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc14d41a20ea5f286378.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc14d41a20ea5f286378.md index 6ddc6fb501d..2b242327d79 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc14d41a20ea5f286378.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc14d41a20ea5f286378.md @@ -1,6 +1,6 @@ --- id: 657fbc14d41a20ea5f286378 -title: Task 71 +title: Tarefa 71 challengeType: 22 dashedName: task-71 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc85c25a16eac8356182.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc85c25a16eac8356182.md index 1ba2ea1ca8e..7caf3722a7e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc85c25a16eac8356182.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc85c25a16eac8356182.md @@ -1,6 +1,6 @@ --- id: 657fbc85c25a16eac8356182 -title: Task 72 +title: Tarefa 72 challengeType: 19 dashedName: task-72 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbcecfc4d42eb28700349.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbcecfc4d42eb28700349.md index d316653e895..a225813c42b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbcecfc4d42eb28700349.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbcecfc4d42eb28700349.md @@ -1,6 +1,6 @@ --- id: 657fbcecfc4d42eb28700349 -title: Task 73 +title: Tarefa 73 challengeType: 19 dashedName: task-73 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbd591461eaeba07ffff1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbd591461eaeba07ffff1.md index f0da2c2eaa8..1e5b4a04bfa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbd591461eaeba07ffff1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbd591461eaeba07ffff1.md @@ -1,6 +1,6 @@ --- id: 657fbd591461eaeba07ffff1 -title: Task 74 +title: Tarefa 74 challengeType: 19 dashedName: task-74 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbde9a43e35ec1ebafe56.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbde9a43e35ec1ebafe56.md index 4b99a7cda40..5c59ce17c0a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbde9a43e35ec1ebafe56.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbde9a43e35ec1ebafe56.md @@ -1,6 +1,6 @@ --- id: 657fbde9a43e35ec1ebafe56 -title: Task 75 +title: Tarefa 75 challengeType: 19 dashedName: task-75 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff0bfb6a28f1d70fa9ef.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff0bfb6a28f1d70fa9ef.md index 04dc65be077..20bca62f992 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff0bfb6a28f1d70fa9ef.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff0bfb6a28f1d70fa9ef.md @@ -1,6 +1,6 @@ --- id: 657fff0bfb6a28f1d70fa9ef -title: Task 78 +title: Tarefa 78 challengeType: 22 dashedName: task-78 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff7dabba2ff23993b08c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff7dabba2ff23993b08c.md index 6b55348089e..f42cfa3c5d5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff7dabba2ff23993b08c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff7dabba2ff23993b08c.md @@ -1,6 +1,6 @@ --- id: 657fff7dabba2ff23993b08c -title: Task 80 +title: Tarefa 80 challengeType: 19 dashedName: task-80 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580001adc7fd4f2b244f3a5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580001adc7fd4f2b244f3a5.md index ce1d7514f75..3064a9b39f1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580001adc7fd4f2b244f3a5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580001adc7fd4f2b244f3a5.md @@ -1,6 +1,6 @@ --- id: 6580001adc7fd4f2b244f3a5 -title: Task 81 +title: Tarefa 81 challengeType: 22 dashedName: task-81 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800082405352f30c6dbc7a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800082405352f30c6dbc7a.md index 006345d0dde..3c4460b5e5d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800082405352f30c6dbc7a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800082405352f30c6dbc7a.md @@ -1,6 +1,6 @@ --- id: 65800082405352f30c6dbc7a -title: Task 82 +title: Tarefa 82 challengeType: 19 dashedName: task-82 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800148406738f397561d77.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800148406738f397561d77.md index f70a99cb8d2..0b8daacc0d5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800148406738f397561d77.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800148406738f397561d77.md @@ -1,6 +1,6 @@ --- id: 65800148406738f397561d77 -title: Task 83 +title: Tarefa 83 challengeType: 22 dashedName: task-83 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658001a018bbcbf3fd84f832.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658001a018bbcbf3fd84f832.md index da13d1eaef2..89399fef54d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658001a018bbcbf3fd84f832.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658001a018bbcbf3fd84f832.md @@ -1,6 +1,6 @@ --- id: 658001a018bbcbf3fd84f832 -title: Task 84 +title: Tarefa 84 challengeType: 19 dashedName: task-84 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580026241ae0ef46b181e49.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580026241ae0ef46b181e49.md index 2e9dfe62794..9aff1b7563b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580026241ae0ef46b181e49.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580026241ae0ef46b181e49.md @@ -1,6 +1,6 @@ --- id: 6580026241ae0ef46b181e49 -title: Task 85 +title: Tarefa 85 challengeType: 22 dashedName: task-85 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658002d23e245ff4ca8542d5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658002d23e245ff4ca8542d5.md index 71a1ec07c09..5cd54aca059 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658002d23e245ff4ca8542d5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658002d23e245ff4ca8542d5.md @@ -1,6 +1,6 @@ --- id: 658002d23e245ff4ca8542d5 -title: Task 86 +title: Tarefa 86 challengeType: 19 dashedName: task-86 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003870281a9f5541085af.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003870281a9f5541085af.md index 4b1ae60c6f7..0669731dd10 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003870281a9f5541085af.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003870281a9f5541085af.md @@ -1,6 +1,6 @@ --- id: 658003870281a9f5541085af -title: Task 87 +title: Tarefa 87 challengeType: 22 dashedName: task-87 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003d8ff9da6f5c08971a1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003d8ff9da6f5c08971a1.md index 580cbf63cf4..7e0c631d5e7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003d8ff9da6f5c08971a1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003d8ff9da6f5c08971a1.md @@ -1,6 +1,6 @@ --- id: 658003d8ff9da6f5c08971a1 -title: Task 88 +title: Tarefa 88 challengeType: 19 dashedName: task-88 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658009d86dc9caf988e2ea64.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658009d86dc9caf988e2ea64.md index acaa9ab628a..21990e79120 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658009d86dc9caf988e2ea64.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658009d86dc9caf988e2ea64.md @@ -1,6 +1,6 @@ --- id: 658009d86dc9caf988e2ea64 -title: Task 89 +title: Tarefa 89 challengeType: 19 dashedName: task-89 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800a95389cc0fa4c197587.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800a95389cc0fa4c197587.md index 525edd5885b..f3cfd68b252 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800a95389cc0fa4c197587.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800a95389cc0fa4c197587.md @@ -1,6 +1,6 @@ --- id: 65800a95389cc0fa4c197587 -title: Task 90 +title: Tarefa 90 challengeType: 22 dashedName: task-90 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b1c13005dfa9df75d73.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b1c13005dfa9df75d73.md index c31d9f5aa77..6cab4c6cba1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b1c13005dfa9df75d73.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b1c13005dfa9df75d73.md @@ -1,6 +1,6 @@ --- id: 65800b1c13005dfa9df75d73 -title: Task 91 +title: Tarefa 91 challengeType: 19 dashedName: task-91 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b96989013fb24aa1b70.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b96989013fb24aa1b70.md index c4a01d2a61c..ce88b7153e2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b96989013fb24aa1b70.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b96989013fb24aa1b70.md @@ -1,6 +1,6 @@ --- id: 65800b96989013fb24aa1b70 -title: Task 92 +title: Tarefa 92 challengeType: 19 dashedName: task-92 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800c12978ba7fb82007446.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800c12978ba7fb82007446.md index 631c51339da..f81c648c760 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800c12978ba7fb82007446.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800c12978ba7fb82007446.md @@ -1,6 +1,6 @@ --- id: 65800c12978ba7fb82007446 -title: Task 93 +title: Tarefa 93 challengeType: 19 dashedName: task-93 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800cf36faba0fbfa1027b6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800cf36faba0fbfa1027b6.md index dd0c73c8fb6..5d2dc5cfa5d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800cf36faba0fbfa1027b6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800cf36faba0fbfa1027b6.md @@ -1,6 +1,6 @@ --- id: 65800cf36faba0fbfa1027b6 -title: Task 94 +title: Tarefa 94 challengeType: 22 dashedName: task-94 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800d61890343fc5cce0ec8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800d61890343fc5cce0ec8.md index d674af9f3ae..113c2134e9e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800d61890343fc5cce0ec8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800d61890343fc5cce0ec8.md @@ -1,6 +1,6 @@ --- id: 65800d61890343fc5cce0ec8 -title: Task 95 +title: Tarefa 95 challengeType: 19 dashedName: task-95 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800df7fc5d49fcd7209248.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800df7fc5d49fcd7209248.md index a9ef32e2d53..36b7adfeefa 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800df7fc5d49fcd7209248.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800df7fc5d49fcd7209248.md @@ -1,6 +1,6 @@ --- id: 65800df7fc5d49fcd7209248 -title: Task 96 +title: Tarefa 96 challengeType: 22 dashedName: task-96 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800e60dad5fefd4ed91589.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800e60dad5fefd4ed91589.md index 7806fdc194a..6f28a3e2fd6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800e60dad5fefd4ed91589.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800e60dad5fefd4ed91589.md @@ -1,6 +1,6 @@ --- id: 65800e60dad5fefd4ed91589 -title: Task 97 +title: Tarefa 97 challengeType: 22 dashedName: task-97 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800f4d194382fdebb81e1f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800f4d194382fdebb81e1f.md index c8641f562e7..7a425c8e3ec 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800f4d194382fdebb81e1f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800f4d194382fdebb81e1f.md @@ -1,6 +1,6 @@ --- id: 65800f4d194382fdebb81e1f -title: Task 98 +title: Tarefa 98 challengeType: 22 dashedName: task-98 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658010478daa16fe79d8113a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658010478daa16fe79d8113a.md index b2fe19f73ae..db2524908f1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658010478daa16fe79d8113a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658010478daa16fe79d8113a.md @@ -1,6 +1,6 @@ --- id: 658010478daa16fe79d8113a -title: Task 99 +title: Tarefa 99 challengeType: 19 dashedName: task-99 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65801182280f63ff10ca4d4f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65801182280f63ff10ca4d4f.md index f63b8729c15..8f7d15da701 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65801182280f63ff10ca4d4f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65801182280f63ff10ca4d4f.md @@ -1,6 +1,6 @@ --- id: 65801182280f63ff10ca4d4f -title: Task 100 +title: Tarefa 100 challengeType: 22 dashedName: task-100 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658011ef9ec114ff80ce5e42.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658011ef9ec114ff80ce5e42.md index 0b4223122d9..18adc24596e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658011ef9ec114ff80ce5e42.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658011ef9ec114ff80ce5e42.md @@ -1,6 +1,6 @@ --- id: 658011ef9ec114ff80ce5e42 -title: Task 101 +title: Tarefa 101 challengeType: 19 dashedName: task-101 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658013bd3b1a06001a59e006.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658013bd3b1a06001a59e006.md index f13fe1dbd42..b76cd7f5113 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658013bd3b1a06001a59e006.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658013bd3b1a06001a59e006.md @@ -1,6 +1,6 @@ --- id: 658013bd3b1a06001a59e006 -title: Task 102 +title: Tarefa 102 challengeType: 22 dashedName: task-102 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802ee9706eb103aea442f8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802ee9706eb103aea442f8.md index 4f83ae7c57f..75a4617523b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802ee9706eb103aea442f8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802ee9706eb103aea442f8.md @@ -1,6 +1,6 @@ --- id: 65802ee9706eb103aea442f8 -title: Task 103 +title: Tarefa 103 challengeType: 19 dashedName: task-103 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802f717cef8c042af950b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802f717cef8c042af950b8.md index 8365beabc2a..e9bd5c190e5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802f717cef8c042af950b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802f717cef8c042af950b8.md @@ -1,6 +1,6 @@ --- id: 65802f717cef8c042af950b8 -title: Task 104 +title: Tarefa 104 challengeType: 19 dashedName: task-104 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802fe92ef0f404ba0437f7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802fe92ef0f404ba0437f7.md index 2e97ef14eed..0ffc9de089a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802fe92ef0f404ba0437f7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802fe92ef0f404ba0437f7.md @@ -1,6 +1,6 @@ --- id: 65802fe92ef0f404ba0437f7 -title: Task 105 +title: Tarefa 105 challengeType: 19 dashedName: task-105 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658030876ac4f605145aeae1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658030876ac4f605145aeae1.md index 5b64fdb953e..a99180223b5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658030876ac4f605145aeae1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658030876ac4f605145aeae1.md @@ -7,11 +7,11 @@ dashedName: dialogue-5-getting-into-extreme-sports # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo # --scene-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index 1246029fa9b..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613cf7cb0b2704934764852.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613cf7cb0b2704934764852.md index d3cf8e1ab66..92e84b12d59 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613cf7cb0b2704934764852.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613cf7cb0b2704934764852.md @@ -9,6 +9,6 @@ dashedName: dialogue-1-discussing-plans-for-the-next-project Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d00727a7a64a5e010243.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d00727a7a64a5e010243.md index 7016d57351c..3dc2d785ab6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d00727a7a64a5e010243.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d00727a7a64a5e010243.md @@ -1,6 +1,6 @@ --- id: 6613d00727a7a64a5e010243 -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d0773359964ab8812659.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d0773359964ab8812659.md index 65b8d858ced..01133518cc5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d0773359964ab8812659.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d0773359964ab8812659.md @@ -1,6 +1,6 @@ --- id: 6613d0773359964ab8812659 -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d0d1d40e384aeecfa9c0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d0d1d40e384aeecfa9c0.md index 454d3a40aaa..f569f9907d7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d0d1d40e384aeecfa9c0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d0d1d40e384aeecfa9c0.md @@ -1,6 +1,6 @@ --- id: 6613d0d1d40e384aeecfa9c0 -title: Task 3 +title: Tarefa 3 challengeType: 19 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d3c56e46394b97da3c30.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d3c56e46394b97da3c30.md index 98f2cbbaba1..2f99450fc47 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d3c56e46394b97da3c30.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d3c56e46394b97da3c30.md @@ -1,6 +1,6 @@ --- id: 6613d3c56e46394b97da3c30 -title: Task 4 +title: Tarefa 4 challengeType: 22 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d3fe6615374be0d10008.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d3fe6615374be0d10008.md index e9df77f313b..54a8666875c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d3fe6615374be0d10008.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d3fe6615374be0d10008.md @@ -1,6 +1,6 @@ --- id: 6613d3fe6615374be0d10008 -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d46936e9374c24cfaaab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d46936e9374c24cfaaab.md index 7ad07e59279..5b359a0d2a3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d46936e9374c24cfaaab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d46936e9374c24cfaaab.md @@ -1,6 +1,6 @@ --- id: 6613d46936e9374c24cfaaab -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d4fc79abb74c83b07fab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d4fc79abb74c83b07fab.md index 71d98c2fff6..e9946821de6 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d4fc79abb74c83b07fab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d4fc79abb74c83b07fab.md @@ -1,6 +1,6 @@ --- id: 6613d4fc79abb74c83b07fab -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d550a08c194cd27607ec.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d550a08c194cd27607ec.md index 1d0a58ec194..51bf185a4db 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d550a08c194cd27607ec.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d550a08c194cd27607ec.md @@ -1,6 +1,6 @@ --- id: 6613d550a08c194cd27607ec -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d67b2a2a134d2b6275a8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d67b2a2a134d2b6275a8.md index 832d1339421..5f14f956ec5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d67b2a2a134d2b6275a8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d67b2a2a134d2b6275a8.md @@ -1,6 +1,6 @@ --- id: 6613d67b2a2a134d2b6275a8 -title: Task 9 +title: Tarefa 9 challengeType: 22 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d6c3e74a984d6fcbd013.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d6c3e74a984d6fcbd013.md index 2c932f7b1aa..102de6b8a51 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d6c3e74a984d6fcbd013.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d6c3e74a984d6fcbd013.md @@ -1,6 +1,6 @@ --- id: 6613d6c3e74a984d6fcbd013 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d709407b9f4dc100b47b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d709407b9f4dc100b47b.md index fdd9aca00fa..a07fa5dd630 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d709407b9f4dc100b47b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d709407b9f4dc100b47b.md @@ -1,6 +1,6 @@ --- id: 6613d709407b9f4dc100b47b -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d803f9d4884e2a882a99.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d803f9d4884e2a882a99.md index b8fd134f1e9..ea4b8b60212 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d803f9d4884e2a882a99.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d803f9d4884e2a882a99.md @@ -1,6 +1,6 @@ --- id: 6613d803f9d4884e2a882a99 -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d89075d1ac4e6773a94b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d89075d1ac4e6773a94b.md index e22d7cfc9c2..ef755bf9f98 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d89075d1ac4e6773a94b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6613d89075d1ac4e6773a94b.md @@ -1,6 +1,6 @@ --- id: 6613d89075d1ac4e6773a94b -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..98e677c885b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- @@ -9,6 +9,6 @@ dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-c Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ac949f89655d25e9d43c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ac949f89655d25e9d43c.md index 8fd5b9dad80..0225ba8f790 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ac949f89655d25e9d43c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ac949f89655d25e9d43c.md @@ -1,6 +1,6 @@ --- id: 6614ac949f89655d25e9d43c -title: Task 14 +title: Tarefa 14 challengeType: 22 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ad58c102e15df06c96d5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ad58c102e15df06c96d5.md index 649558695f4..4c60f5aaed4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ad58c102e15df06c96d5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ad58c102e15df06c96d5.md @@ -1,6 +1,6 @@ --- id: 6614ad58c102e15df06c96d5 -title: Task 15 +title: Tarefa 15 challengeType: 22 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ae3e02cc465ebee68851.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ae3e02cc465ebee68851.md index c039773282c..498396d4614 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ae3e02cc465ebee68851.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614ae3e02cc465ebee68851.md @@ -1,6 +1,6 @@ --- id: 6614ae3e02cc465ebee68851 -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b1f8ee220c5f79df89b8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b1f8ee220c5f79df89b8.md index 160ea7eb50f..4be00f0e15a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b1f8ee220c5f79df89b8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b1f8ee220c5f79df89b8.md @@ -1,6 +1,6 @@ --- id: 6614b1f8ee220c5f79df89b8 -title: Task 17 +title: Tarefa 17 challengeType: 19 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b2714761f45fe3b17294.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b2714761f45fe3b17294.md index 348a8b21985..ef637834797 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b2714761f45fe3b17294.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b2714761f45fe3b17294.md @@ -1,6 +1,6 @@ --- id: 6614b2714761f45fe3b17294 -title: Task 18 +title: Tarefa 18 challengeType: 22 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b326f956cf605cd03775.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b326f956cf605cd03775.md index bfe607e9f4a..96c98b9c463 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b326f956cf605cd03775.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b326f956cf605cd03775.md @@ -1,6 +1,6 @@ --- id: 6614b326f956cf605cd03775 -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b3e52a6aca60bc3417fb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b3e52a6aca60bc3417fb.md index a9c8efe7856..9c74add4284 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b3e52a6aca60bc3417fb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b3e52a6aca60bc3417fb.md @@ -1,6 +1,6 @@ --- id: 6614b3e52a6aca60bc3417fb -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b4a8ff3874612a8df77c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b4a8ff3874612a8df77c.md index 35a79ce4a5a..e89d4414a5a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b4a8ff3874612a8df77c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b4a8ff3874612a8df77c.md @@ -1,6 +1,6 @@ --- id: 6614b4a8ff3874612a8df77c -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b53003e92d6182e98978.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b53003e92d6182e98978.md index 2a06c5d8ddb..c8a1a2c12f9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b53003e92d6182e98978.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b53003e92d6182e98978.md @@ -1,6 +1,6 @@ --- id: 6614b53003e92d6182e98978 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b572f81cb561d4ac39da.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b572f81cb561d4ac39da.md index 99fdbe544d4..42cdc325260 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b572f81cb561d4ac39da.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614b572f81cb561d4ac39da.md @@ -1,6 +1,6 @@ --- id: 6614b572f81cb561d4ac39da -title: Task 23 +title: Tarefa 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614bde62b7db56b9448285e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614bde62b7db56b9448285e.md index 5cfaf9e3b48..d9664cf6db3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614bde62b7db56b9448285e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614bde62b7db56b9448285e.md @@ -9,6 +9,6 @@ dashedName: dialogue-3-plans-for-a-presentation Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614be2a21b4426bfcd25919.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614be2a21b4426bfcd25919.md index 43ade3c3879..c5fb7fb2c12 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614be2a21b4426bfcd25919.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614be2a21b4426bfcd25919.md @@ -1,6 +1,6 @@ --- id: 6614be2a21b4426bfcd25919 -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614be98fc11336c52aa3093.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614be98fc11336c52aa3093.md index 5864af37e40..d363f0dc109 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614be98fc11336c52aa3093.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614be98fc11336c52aa3093.md @@ -1,6 +1,6 @@ --- id: 6614be98fc11336c52aa3093 -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614befe8e1dc16ca27b7b65.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614befe8e1dc16ca27b7b65.md index 873b089ed91..030272a63c3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614befe8e1dc16ca27b7b65.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614befe8e1dc16ca27b7b65.md @@ -1,6 +1,6 @@ --- id: 6614befe8e1dc16ca27b7b65 -title: Task 26 +title: Tarefa 26 challengeType: 22 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c03efeb2cb6d2227d0b4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c03efeb2cb6d2227d0b4.md index 48adfd4c7bc..2b1884e9257 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c03efeb2cb6d2227d0b4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c03efeb2cb6d2227d0b4.md @@ -1,6 +1,6 @@ --- id: 6614c03efeb2cb6d2227d0b4 -title: Task 27 +title: Tarefa 27 challengeType: 22 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c0ec11b55c6d849fbe3a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c0ec11b55c6d849fbe3a.md index 63d8fd4ee0f..b1b65dc065c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c0ec11b55c6d849fbe3a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c0ec11b55c6d849fbe3a.md @@ -1,6 +1,6 @@ --- id: 6614c0ec11b55c6d849fbe3a -title: Task 28 +title: Tarefa 28 challengeType: 19 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c12f91d2286dcd1f0fe4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c12f91d2286dcd1f0fe4.md index c66838797e4..5a243e1836b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c12f91d2286dcd1f0fe4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c12f91d2286dcd1f0fe4.md @@ -1,6 +1,6 @@ --- id: 6614c12f91d2286dcd1f0fe4 -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c1d0e9e1976e3b524435.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c1d0e9e1976e3b524435.md index d3965bae3a4..e21160e04de 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c1d0e9e1976e3b524435.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c1d0e9e1976e3b524435.md @@ -1,6 +1,6 @@ --- id: 6614c1d0e9e1976e3b524435 -title: Task 30 +title: Tarefa 30 challengeType: 19 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c2262f754e6e85d2ff1a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c2262f754e6e85d2ff1a.md index 5a63f582e08..aa0c7dd4bc4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c2262f754e6e85d2ff1a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614c2262f754e6e85d2ff1a.md @@ -1,6 +1,6 @@ --- id: 6614c2262f754e6e85d2ff1a -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index 7e54c848442..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..a4eaa68dd2a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..377534c3c7b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -1,14 +1,11 @@ --- id: 6629cc728221a1a4a5613320 -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..f654774a44d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -1,20 +1,17 @@ --- id: 6629ce1a4f6581a7266d6ca9 -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..6705ed3dd7e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -1,14 +1,11 @@ --- id: 6629ce6bffd1efa9c6c57eaa -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e0281f1f63c107adeeb1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e0281f1f63c107adeeb1.md index 86422a953e2..d383b5368b1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e0281f1f63c107adeeb1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e0281f1f63c107adeeb1.md @@ -1,6 +1,6 @@ --- id: 6629e0281f1f63c107adeeb1 -title: Task 4 +title: Tarefa 4 challengeType: 19 dashedName: task-4 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..52d6e509116 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -1,14 +1,11 @@ --- id: 6629e10635cf1ec412861da1 -title: Task 6 +title: Tarefa 6 challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e2c8d7ddd4c836958a4c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e2c8d7ddd4c836958a4c.md index cc2758265c7..aa21e604e55 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e2c8d7ddd4c836958a4c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e2c8d7ddd4c836958a4c.md @@ -1,6 +1,6 @@ --- id: 6629e2c8d7ddd4c836958a4c -title: Task 7 +title: Tarefa 7 challengeType: 19 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..ce59b44a6bf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -1,14 +1,11 @@ --- id: 6629e49677d89dcc9614251c -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..bba6e4b5629 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -1,14 +1,11 @@ --- id: 6629e6f8758adad2ae0894b0 -title: Task 9 +title: Tarefa 9 challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e8993ac42fd6825f9b54.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e8993ac42fd6825f9b54.md index 43b1d74bf09..e0991403599 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e8993ac42fd6825f9b54.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e8993ac42fd6825f9b54.md @@ -1,6 +1,6 @@ --- id: 6629e8993ac42fd6825f9b54 -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..fcde278aabd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -1,14 +1,11 @@ --- id: 6629e96c186102d8a65bfbb9 -title: Task 10 +title: Tarefa 10 challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a1be9a499ccee6beb20f9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a1be9a499ccee6beb20f9.md index 60b930387c0..74a1e7ef543 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a1be9a499ccee6beb20f9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a1be9a499ccee6beb20f9.md @@ -1,6 +1,6 @@ --- id: 662a1be9a499ccee6beb20f9 -title: Task 5 +title: Tarefa 5 challengeType: 19 dashedName: task-5 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a20ae5a9153fa9e6206c9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a20ae5a9153fa9e6206c9.md index ae85137a5f3..fbfe134e8c7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a20ae5a9153fa9e6206c9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a20ae5a9153fa9e6206c9.md @@ -1,6 +1,6 @@ --- id: 662a20ae5a9153fa9e6206c9 -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..08af2e13b9d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -1,14 +1,11 @@ --- id: 662a26c7a3d49b0a4a19a00f -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..0d5dd2b36d8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -1,15 +1,11 @@ --- id: 662a2779b2aeb80c10508bf2 -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..06327661a36 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -1,14 +1,11 @@ --- id: 662a292bb1622d1012b5b86e -title: Task 15 +title: Tarefa 15 challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..7d647a7bd72 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -1,14 +1,11 @@ --- id: 662a2990757239112d74142e -title: Task 16 +title: Tarefa 16 challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..617a39cbc05 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -1,14 +1,11 @@ --- id: 662a2b1f0c9314142ae87955 -title: Task 17 +title: Tarefa 17 challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..e0f865b0fec 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -1,14 +1,11 @@ --- id: 662a2f2a2c16bf1a9f3609b7 -title: Task 18 +title: Tarefa 18 challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..c38c109c6ef 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -1,14 +1,11 @@ --- id: 662a304552f2631d63aa7cab -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..0106c34fabe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -1,14 +1,11 @@ --- id: 662a30d3f1071a1ef14eefe1 -title: Task 20 +title: Tarefa 20 challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..42c51ff524a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -1,20 +1,17 @@ --- id: 662a35f7eaaa932ab0973d0c -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..61724461a78 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -1,14 +1,11 @@ --- id: 662b5fdf67f4ea087ff7e590 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..848018a6124 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -1,14 +1,11 @@ --- id: 662b718c7709f809559d5806 -title: Task 23 +title: Tarefa 23 challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..8e472c1a409 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -1,14 +1,11 @@ --- id: 662b74055c06e60af4f9b976 -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..097160eaf15 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -1,14 +1,11 @@ --- id: 662b7577212ab40b8534efbf -title: Task 25 +title: Tarefa 25 challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..2b5aac5a760 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -1,14 +1,11 @@ --- id: 662b772113dc330c283730f3 -title: Task 26 +title: Tarefa 26 challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..f01ee2a6183 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -1,14 +1,11 @@ --- id: 662b7d0fda698d0d84ac67f4 -title: Task 27 +title: Tarefa 27 challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..24b04eafb10 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -1,14 +1,11 @@ --- id: 662b803fd9ddc00e943e350e -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..3e5f8bde251 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -1,14 +1,11 @@ --- id: 662b81901b178a0fd33f093c -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..2597ae923d3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -1,14 +1,11 @@ --- id: 662b82c8d47f8a1076172391 -title: Task 30 +title: Tarefa 30 challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..37f893b73b2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -1,15 +1,11 @@ --- id: 662b83b12cab3910d87fdebc -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..1c1ac790e1e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b651838a197 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -1,14 +1,11 @@ --- id: 662b871f32087113511f262a -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..bf4515c9ebe 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -1,14 +1,11 @@ --- id: 662b888ba2c1d713f3a05203 -title: Task 33 +title: Tarefa 33 challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..db05271e192 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -1,14 +1,11 @@ --- id: 662b8975b11107146a49ec58 -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..150bc6ce00d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -1,14 +1,11 @@ --- id: 662e4dc39f884e1d15ed5f7a -title: Task 35 +title: Tarefa 35 challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..ffabd7b4a6b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -1,14 +1,11 @@ --- id: 662e4f2edbb46a1dc6efc94f -title: Task 36 +title: Tarefa 36 challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..b0313667429 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 529991da206..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b37556424464ba0f984e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b37556424464ba0f984e.md index 82a43e1ed40..e713ead6a15 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b37556424464ba0f984e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b37556424464ba0f984e.md @@ -9,6 +9,6 @@ dashedName: dialogue-1-asking-about-data-types Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b49ade31b06586863453.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b49ade31b06586863453.md index 82ae1cbc8e4..55807932c1f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b49ade31b06586863453.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b49ade31b06586863453.md @@ -1,6 +1,6 @@ --- id: 6630b49ade31b06586863453 -title: Task 1 +title: Tarefa 1 challengeType: 22 dashedName: task-1 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b56594405466378bbfbb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b56594405466378bbfbb.md index 2fcae18cf71..3815def2761 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b56594405466378bbfbb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b56594405466378bbfbb.md @@ -1,6 +1,6 @@ --- id: 6630b56594405466378bbfbb -title: Task 2 +title: Tarefa 2 challengeType: 19 dashedName: task-2 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b687daf7dd66a730a0be.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b687daf7dd66a730a0be.md index 2dcea77aeea..37de571b621 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b687daf7dd66a730a0be.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b687daf7dd66a730a0be.md @@ -1,6 +1,6 @@ --- id: 6630b687daf7dd66a730a0be -title: Task 3 +title: Tarefa 3 challengeType: 22 dashedName: task-3 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b88fdd1eb2675cba64ec.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b88fdd1eb2675cba64ec.md index d040df4a3e2..b8d26e029d8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b88fdd1eb2675cba64ec.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630b88fdd1eb2675cba64ec.md @@ -1,6 +1,6 @@ --- id: 6630b88fdd1eb2675cba64ec -title: Task 4 +title: Tarefa 4 challengeType: 19 dashedName: task-4 --- @@ -9,7 +9,7 @@ dashedName: task-4 Prepositions are words that link nouns, pronouns, or phrases to other words within a sentence and often indicate time, place, or relationship, like `with`, `for`, `about`. They can also appear at the end of a question or sentence, which is common in spoken English. -Examples: +Exemplos: When someone asks `who are you going with?` the preposition `with` is used at the end to inquire about the company one will have. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bb08c02b626826c937ae.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bb08c02b626826c937ae.md index dccd0c80d32..5d77f7a1912 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bb08c02b626826c937ae.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bb08c02b626826c937ae.md @@ -1,6 +1,6 @@ --- id: 6630bb08c02b626826c937ae -title: Task 5 +title: Tarefa 5 challengeType: 22 dashedName: task-5 --- @@ -14,7 +14,7 @@ Sarah: You use them to tell the computer what kind of data you're working with. The phrase `work with` is used to describe using or dealing with something, such as tools, materials, people, or concepts, to accomplish a task or goal. It implies cooperation or interaction. -Examples: +Exemplos: `I work with computers every day.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bc7702367d68c7679dba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bc7702367d68c7679dba.md index af72828b878..c2629f85b50 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bc7702367d68c7679dba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bc7702367d68c7679dba.md @@ -1,6 +1,6 @@ --- id: 6630bc7702367d68c7679dba -title: Task 6 +title: Tarefa 6 challengeType: 19 dashedName: task-6 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bd815e1b146937422948.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bd815e1b146937422948.md index 5cc54c7289b..ffe426a7944 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bd815e1b146937422948.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bd815e1b146937422948.md @@ -1,6 +1,6 @@ --- id: 6630bd815e1b146937422948 -title: Task 7 +title: Tarefa 7 challengeType: 22 dashedName: task-7 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bf29b2e38669e3c15823.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bf29b2e38669e3c15823.md index 73e7cad759e..0379e13569e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bf29b2e38669e3c15823.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630bf29b2e38669e3c15823.md @@ -1,6 +1,6 @@ --- id: 6630bf29b2e38669e3c15823 -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e609d81a446cd663c521.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e609d81a446cd663c521.md index ad1422a0d2d..95aeb003f2c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e609d81a446cd663c521.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e609d81a446cd663c521.md @@ -1,6 +1,6 @@ --- id: 6630e609d81a446cd663c521 -title: Task 9 +title: Tarefa 9 challengeType: 22 dashedName: task-9 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e7b497466d6d8bb5b863.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e7b497466d6d8bb5b863.md index 61eff0c7c56..75da1b791ec 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e7b497466d6d8bb5b863.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e7b497466d6d8bb5b863.md @@ -1,6 +1,6 @@ --- id: 6630e7b497466d6d8bb5b863 -title: Task 10 +title: Tarefa 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e831b3a1a36de42fb705.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e831b3a1a36de42fb705.md index b99606a5455..dd6e34629cf 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e831b3a1a36de42fb705.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e831b3a1a36de42fb705.md @@ -1,6 +1,6 @@ --- id: 6630e831b3a1a36de42fb705 -title: Task 11 +title: Tarefa 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e965a9e9c46e8b5a3ee2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e965a9e9c46e8b5a3ee2.md index 89b3bf2d617..947a46f675e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e965a9e9c46e8b5a3ee2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6630e965a9e9c46e8b5a3ee2.md @@ -1,6 +1,6 @@ --- id: 6630e965a9e9c46e8b5a3ee2 -title: Task 12 +title: Tarefa 12 challengeType: 19 dashedName: task-12 --- @@ -11,7 +11,7 @@ In programming, `int` stands for "integer". It's a data type used to store whole Choosing the `int` data type is essential when dealing with whole numbers, like counts, indexes in arrays, or any scenario where fractional numbers are not needed. -Examples: +Exemplos: Counting items: `int itemCount = 5;` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663246e8f661af779398be0e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663246e8f661af779398be0e.md index 116925a4b36..20e01df76de 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663246e8f661af779398be0e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663246e8f661af779398be0e.md @@ -1,6 +1,6 @@ --- id: 663246e8f661af779398be0e -title: Task 13 +title: Tarefa 13 challengeType: 22 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632497b37b28b78907c0a97.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632497b37b28b78907c0a97.md index 26dc36a8265..93f9b8c348f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632497b37b28b78907c0a97.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632497b37b28b78907c0a97.md @@ -1,6 +1,6 @@ --- id: 6632497b37b28b78907c0a97 -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 --- @@ -9,7 +9,7 @@ dashedName: task-14 Demonstrative pronouns such as `this`, `that`, `these`, and `those` are used to point out specific things or people. `This` and `these` refer to objects that are near the speaker. `This` is used for singular items, and `these` for plural. `That` and `those` refer to objects farther away, with `that` used for singular and `those` for plural. -Examples: +Exemplos: `This is my book.` (Refers to a book close to the speaker) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324c110747c079691211a1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324c110747c079691211a1.md index 448703e9e8e..adc76cceaf2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324c110747c079691211a1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324c110747c079691211a1.md @@ -1,6 +1,6 @@ --- id: 66324c110747c079691211a1 -title: Task 16 +title: Tarefa 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324d85e67a5c7a072a5b4d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324d85e67a5c7a072a5b4d.md index e4d46a336fb..5041185dcad 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324d85e67a5c7a072a5b4d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324d85e67a5c7a072a5b4d.md @@ -1,6 +1,6 @@ --- id: 66324d85e67a5c7a072a5b4d -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324f956a24867b039d95c4.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324f956a24867b039d95c4.md index 69147cd3677..36efe358f37 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324f956a24867b039d95c4.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66324f956a24867b039d95c4.md @@ -1,6 +1,6 @@ --- id: 66324f956a24867b039d95c4 -title: Task 17 +title: Tarefa 17 challengeType: 22 dashedName: task-17 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66325225b08cff7be37ac2e7.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66325225b08cff7be37ac2e7.md index 6d4f630587b..0e5f292036e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66325225b08cff7be37ac2e7.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66325225b08cff7be37ac2e7.md @@ -1,6 +1,6 @@ --- id: 66325225b08cff7be37ac2e7 -title: Task 19 +title: Tarefa 19 challengeType: 19 dashedName: task-19 --- @@ -13,7 +13,7 @@ Relative pronouns like `who`, `whom`, `which`, and `that` are used to connect re `Which` is used for specific things or animals, and `that` can be used for people, things, or animals in defining clauses. -Examples: +Exemplos: `The programmer who wrote this code is brilliant.` (`who` refers to the programmer) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663253fdb77eab7c9f3bbd16.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663253fdb77eab7c9f3bbd16.md index 2b4b65611a8..e0fb6cf7d7e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663253fdb77eab7c9f3bbd16.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663253fdb77eab7c9f3bbd16.md @@ -1,6 +1,6 @@ --- id: 663253fdb77eab7c9f3bbd16 -title: Task 18 +title: Tarefa 18 challengeType: 22 dashedName: task-18 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66325752419d337dc13ffd83.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66325752419d337dc13ffd83.md index 63bfb99008d..1acaff37967 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66325752419d337dc13ffd83.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66325752419d337dc13ffd83.md @@ -1,6 +1,6 @@ --- id: 66325752419d337dc13ffd83 -title: Task 20 +title: Tarefa 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632fd7b0b9f8087ff8aa3ba.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632fd7b0b9f8087ff8aa3ba.md index 4539f5bb60a..bd82c51ce5a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632fd7b0b9f8087ff8aa3ba.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632fd7b0b9f8087ff8aa3ba.md @@ -9,6 +9,6 @@ dashedName: dialogue-2-asking-about-functions Watch the video below to understand the context of the upcoming lessons. -# --assignment-- +# --atividade-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632fe1b6548f7887488a767.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632fe1b6548f7887488a767.md index 0ea1ac574a9..4ef56a24ff8 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632fe1b6548f7887488a767.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6632fe1b6548f7887488a767.md @@ -1,6 +1,6 @@ --- id: 6632fe1b6548f7887488a767 -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633008b3377e5894cf71629.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633008b3377e5894cf71629.md index d2219d9982b..ed80b36c16a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633008b3377e5894cf71629.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633008b3377e5894cf71629.md @@ -1,6 +1,6 @@ --- id: 6633008b3377e5894cf71629 -title: Task 22 +title: Tarefa 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663301c3812e2e89c08dcc31.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663301c3812e2e89c08dcc31.md index 92487e81069..2aa915b2b11 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663301c3812e2e89c08dcc31.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663301c3812e2e89c08dcc31.md @@ -1,6 +1,6 @@ --- id: 663301c3812e2e89c08dcc31 -title: Task 23 +title: Tarefa 23 challengeType: 22 dashedName: task-23 --- @@ -14,7 +14,7 @@ Tom: Thanks for explaining, Sarah. The expression `thanks for` is used to show gratitude for specific actions or help received. The structure is commonly followed by an `-ing` form of a verb (a gerund) or a noun to specify what the thanks are for. -Examples: +Exemplos: `Thanks for helping me with my homework.` diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633032bf786ff8a61b0c482.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633032bf786ff8a61b0c482.md index 6ac98805510..63452a5e96b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633032bf786ff8a61b0c482.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633032bf786ff8a61b0c482.md @@ -1,6 +1,6 @@ --- id: 6633032bf786ff8a61b0c482 -title: Task 24 +title: Tarefa 24 challengeType: 19 dashedName: task-24 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330444cf1ea28af44e980d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330444cf1ea28af44e980d.md index 343b9095d65..d289bcb79eb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330444cf1ea28af44e980d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330444cf1ea28af44e980d.md @@ -1,6 +1,6 @@ --- id: 66330444cf1ea28af44e980d -title: Task 25 +title: Tarefa 25 challengeType: 22 dashedName: task-25 --- @@ -16,7 +16,7 @@ Direct questions are straightforward inquiries that clearly ask for specific inf Indirect questions or statements, on the other hand, are more polite and less direct. They do not invert the subject and the verb and often begin with phrases like `I was wondering` or `Could you tell me`. For example, instead of asking `Where do you live?` you might say, `Could you tell me where you live?` This makes the question sound less abrupt and more polite, which is particularly useful in formal settings or when you're speaking with someone you don't know well. -Examples: +Exemplos: Direct question: `What time is it?` (inversion of verb `is` and subject `it`) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663308af5363be8c4a5c68b9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663308af5363be8c4a5c68b9.md index 4d6ad933dbc..88d8fa278ec 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663308af5363be8c4a5c68b9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663308af5363be8c4a5c68b9.md @@ -1,6 +1,6 @@ --- id: 663308af5363be8c4a5c68b9 -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330dac56ad868d51d5698c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330dac56ad868d51d5698c.md index ffca5b16007..49165bd51b5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330dac56ad868d51d5698c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330dac56ad868d51d5698c.md @@ -1,6 +1,6 @@ --- id: 66330dac56ad868d51d5698c -title: Task 27 +title: Tarefa 27 challengeType: 22 dashedName: task-27 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330fc6d2e3c38e148c8789.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330fc6d2e3c38e148c8789.md index c5653431965..ade7cc5d317 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330fc6d2e3c38e148c8789.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66330fc6d2e3c38e148c8789.md @@ -1,6 +1,6 @@ --- id: 66330fc6d2e3c38e148c8789 -title: Task 28 +title: Tarefa 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66331263a35e868f3dade3de.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66331263a35e868f3dade3de.md index dfcd72cb38b..a4876a75d79 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66331263a35e868f3dade3de.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66331263a35e868f3dade3de.md @@ -1,6 +1,6 @@ --- id: 66331263a35e868f3dade3de -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66331384245d028fd8b1be23.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66331384245d028fd8b1be23.md index 40dd965813c..a94f3c7a56f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66331384245d028fd8b1be23.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66331384245d028fd8b1be23.md @@ -1,6 +1,6 @@ --- id: 66331384245d028fd8b1be23 -title: Task 30 +title: Tarefa 30 challengeType: 19 dashedName: task-30 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663315286b7cff907e92ae25.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663315286b7cff907e92ae25.md index 230de7add3a..4c4b2025329 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663315286b7cff907e92ae25.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663315286b7cff907e92ae25.md @@ -1,6 +1,6 @@ --- id: 663315286b7cff907e92ae25 -title: Task 31 +title: Tarefa 31 challengeType: 22 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663316fdcce39d9144ae40cd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663316fdcce39d9144ae40cd.md index 4bd6c00a193..a4de3631b80 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663316fdcce39d9144ae40cd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663316fdcce39d9144ae40cd.md @@ -1,6 +1,6 @@ --- id: 663316fdcce39d9144ae40cd -title: Task 32 +title: Tarefa 32 challengeType: 22 dashedName: task-32 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633203e58595e93ef54ba3b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633203e58595e93ef54ba3b.md index b8e140c2592..0ed38058d94 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633203e58595e93ef54ba3b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633203e58595e93ef54ba3b.md @@ -1,6 +1,6 @@ --- id: 6633203e58595e93ef54ba3b -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633261bb572f2953f5abd13.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633261bb572f2953f5abd13.md index 3bed360ea98..90bc01ffa00 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633261bb572f2953f5abd13.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633261bb572f2953f5abd13.md @@ -1,6 +1,6 @@ --- id: 6633261bb572f2953f5abd13 -title: Task 34 +title: Tarefa 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66334fd916a3a697e1d2c631.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66334fd916a3a697e1d2c631.md index 8f1cdeca5d9..d724a773d06 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66334fd916a3a697e1d2c631.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66334fd916a3a697e1d2c631.md @@ -11,4 +11,4 @@ Watch the video below to understand the context of the upcoming lessons. # --assignment-- -Watch the video +Assista ao vídeo diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663350023c7cb898358af702.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663350023c7cb898358af702.md index 3ceaa7f053c..1150b15d89a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663350023c7cb898358af702.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663350023c7cb898358af702.md @@ -1,6 +1,6 @@ --- id: 663350023c7cb898358af702 -title: Task 35 +title: Tarefa 35 challengeType: 22 dashedName: task-35 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633511c7b197798ad5fd703.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633511c7b197798ad5fd703.md index b219b7dab21..511253bf2d7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633511c7b197798ad5fd703.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633511c7b197798ad5fd703.md @@ -1,6 +1,6 @@ --- id: 6633511c7b197798ad5fd703 -title: Task 36 +title: Tarefa 36 challengeType: 19 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663352b4860f03995736b6cd.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663352b4860f03995736b6cd.md index f78bd1415d7..3a165790cbb 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663352b4860f03995736b6cd.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663352b4860f03995736b6cd.md @@ -1,6 +1,6 @@ --- id: 663352b4860f03995736b6cd -title: Task 37 +title: Tarefa 37 challengeType: 22 dashedName: task-37 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663354f60aafd69a4c0138da.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663354f60aafd69a4c0138da.md index eaa522ecadd..7a06f5aaf86 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663354f60aafd69a4c0138da.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/663354f60aafd69a4c0138da.md @@ -1,6 +1,6 @@ --- id: 663354f60aafd69a4c0138da -title: Task 38 +title: Tarefa 38 challengeType: 22 dashedName: task-38 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339d408258519c61151a64.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339d408258519c61151a64.md index 60a2e169ff6..32fcaf41b29 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339d408258519c61151a64.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339d408258519c61151a64.md @@ -1,6 +1,6 @@ --- id: 66339d408258519c61151a64 -title: Task 39 +title: Tarefa 39 challengeType: 19 dashedName: task-39 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339e21256f099cd722292f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339e21256f099cd722292f.md index 2666e6909cc..1cfe522289f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339e21256f099cd722292f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339e21256f099cd722292f.md @@ -1,6 +1,6 @@ --- id: 66339e21256f099cd722292f -title: Task 40 +title: Tarefa 40 challengeType: 19 dashedName: task-40 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339f1995bdea9d4aa28cd8.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339f1995bdea9d4aa28cd8.md index 0ac417d3c03..2fd8ac69eda 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339f1995bdea9d4aa28cd8.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/66339f1995bdea9d4aa28cd8.md @@ -1,6 +1,6 @@ --- id: 66339f1995bdea9d4aa28cd8 -title: Task 41 +title: Tarefa 41 challengeType: 22 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a14f17a4669e1c980d91.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a14f17a4669e1c980d91.md index 3775b7728aa..b50056fbb0e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a14f17a4669e1c980d91.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a14f17a4669e1c980d91.md @@ -1,6 +1,6 @@ --- id: 6633a14f17a4669e1c980d91 -title: Task 42 +title: Tarefa 42 challengeType: 19 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a2a86218659eb77fb9a1.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a2a86218659eb77fb9a1.md index 40c1694d2a3..ede76473d72 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a2a86218659eb77fb9a1.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a2a86218659eb77fb9a1.md @@ -1,6 +1,6 @@ --- id: 6633a2a86218659eb77fb9a1 -title: Task 43 +title: Tarefa 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a45ce837ac9f95394eab.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a45ce837ac9f95394eab.md index caf851fbfc5..7643fc4e0b1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a45ce837ac9f95394eab.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a45ce837ac9f95394eab.md @@ -1,6 +1,6 @@ --- id: 6633a45ce837ac9f95394eab -title: Task 44 +title: Tarefa 44 challengeType: 19 dashedName: task-44 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a64567c725a05a94b68f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a64567c725a05a94b68f.md index 2bdf963f14a..b9ce8132653 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a64567c725a05a94b68f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a64567c725a05a94b68f.md @@ -1,6 +1,6 @@ --- id: 6633a64567c725a05a94b68f -title: Task 45 +title: Tarefa 45 challengeType: 22 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a97f928771a163b59745.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a97f928771a163b59745.md index d3c8437a1f2..f735d27c500 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a97f928771a163b59745.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633a97f928771a163b59745.md @@ -1,6 +1,6 @@ --- id: 6633a97f928771a163b59745 -title: Task 46 +title: Tarefa 46 challengeType: 19 dashedName: task-46 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633aa9cf90591a1f63a431e.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633aa9cf90591a1f63a431e.md index d23b5c825c0..6fcce441124 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633aa9cf90591a1f63a431e.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633aa9cf90591a1f63a431e.md @@ -1,6 +1,6 @@ --- id: 6633aa9cf90591a1f63a431e -title: Task 47 +title: Tarefa 47 challengeType: 19 dashedName: task-47 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633abfc050e82a29a76dd42.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633abfc050e82a29a76dd42.md index 9766471041d..814e3d489e7 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633abfc050e82a29a76dd42.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633abfc050e82a29a76dd42.md @@ -1,6 +1,6 @@ --- id: 6633abfc050e82a29a76dd42 -title: Task 48 +title: Tarefa 48 challengeType: 19 dashedName: task-48 --- @@ -9,7 +9,7 @@ dashedName: task-48 `Can` is used to show that something is possible or someone is capable of doing something, while `can't` is a contraction of `cannot`, indicating that something is impossible or someone is incapable of doing something. Both words should be followed by the base form of verbs. -Examples: +Exemplos: `I can swim.` (showing ability) diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633ad387b6914a3313339b3.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633ad387b6914a3313339b3.md index 73fd8ad6e75..728320e18d2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633ad387b6914a3313339b3.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633ad387b6914a3313339b3.md @@ -1,6 +1,6 @@ --- id: 6633ad387b6914a3313339b3 -title: Task 49 +title: Tarefa 49 challengeType: 22 dashedName: task-49 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633ae85f1fb7aa3ca13234d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633ae85f1fb7aa3ca13234d.md index e3102706269..03a08e98c9e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633ae85f1fb7aa3ca13234d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/6633ae85f1fb7aa3ca13234d.md @@ -1,6 +1,6 @@ --- id: 6633ae85f1fb7aa3ca13234d -title: Task 50 +title: Tarefa 50 challengeType: 19 dashedName: task-50 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index f16bb05bc82..00000000000 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --atividade-- - -Watch the video diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/651dd5a46ffb500e3f2ce47b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/651dd5a46ffb500e3f2ce47b.md index 48e83e9712d..d3701d4c073 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/651dd5a46ffb500e3f2ce47b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/651dd5a46ffb500e3f2ce47b.md @@ -7,11 +7,11 @@ dashedName: dialogue-a-mobile-developer-joins-the-team # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b5cec02f00e23028cdbd5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b5cec02f00e23028cdbd5.md index 1e1b01b2f85..85ab20cff02 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b5cec02f00e23028cdbd5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b5cec02f00e23028cdbd5.md @@ -1,6 +1,6 @@ --- id: 657b5cec02f00e23028cdbd5 -title: Task 8 +title: Tarefa 8 challengeType: 19 dashedName: task-8 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b602d5bf54224a94cbfa6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b602d5bf54224a94cbfa6.md index efde301512c..ced43a09172 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b602d5bf54224a94cbfa6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b602d5bf54224a94cbfa6.md @@ -1,6 +1,6 @@ --- id: 657b602d5bf54224a94cbfa6 -title: Task 11 +title: Tarefa 11 challengeType: 22 dashedName: task-11 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b631cc34605266f81b9bb.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b631cc34605266f81b9bb.md index c5cbe49683e..58b0b2cffda 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b631cc34605266f81b9bb.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b631cc34605266f81b9bb.md @@ -1,6 +1,6 @@ --- id: 657b631cc34605266f81b9bb -title: Task 13 +title: Tarefa 13 challengeType: 19 dashedName: task-13 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b64017820f626f6a092c2.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b64017820f626f6a092c2.md index ecfbb6416ce..b559d1c723d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b64017820f626f6a092c2.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b64017820f626f6a092c2.md @@ -1,6 +1,6 @@ --- id: 657b64017820f626f6a092c2 -title: Task 14 +title: Tarefa 14 challengeType: 19 dashedName: task-14 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b6531fad8572767c5b4dc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b6531fad8572767c5b4dc.md index 9390a26cca5..80450e6ef38 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b6531fad8572767c5b4dc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b6531fad8572767c5b4dc.md @@ -1,6 +1,6 @@ --- id: 657b6531fad8572767c5b4dc -title: Task 15 +title: Tarefa 15 challengeType: 19 dashedName: task-15 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b6940d1ad7829b4d9a918.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b6940d1ad7829b4d9a918.md index d69c4149182..a3a360fd7d0 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b6940d1ad7829b4d9a918.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657b6940d1ad7829b4d9a918.md @@ -1,6 +1,6 @@ --- id: 657b6940d1ad7829b4d9a918 -title: Task 21 +title: Tarefa 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657c836198f77668f5cfd122.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657c836198f77668f5cfd122.md index 45827028d92..8e03931d880 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657c836198f77668f5cfd122.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657c836198f77668f5cfd122.md @@ -7,11 +7,11 @@ dashedName: dialogue-introducing-the-new-junior-developer # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video. +Assista ao vídeo. # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca33bb1f197812c1a358b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca33bb1f197812c1a358b.md index 1ff26599fd0..b1cc6c9a391 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca33bb1f197812c1a358b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca33bb1f197812c1a358b.md @@ -1,6 +1,6 @@ --- id: 657ca33bb1f197812c1a358b -title: Task 26 +title: Tarefa 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca50a95d1c3828ee5a991.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca50a95d1c3828ee5a991.md index 49fbab38c00..866fef6ad3d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca50a95d1c3828ee5a991.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca50a95d1c3828ee5a991.md @@ -1,6 +1,6 @@ --- id: 657ca50a95d1c3828ee5a991 -title: Task 29 +title: Tarefa 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca59e6e559782e4c10056.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca59e6e559782e4c10056.md index 0ee98b05a97..22de9b7d7b9 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca59e6e559782e4c10056.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca59e6e559782e4c10056.md @@ -14,7 +14,7 @@ This is Sarah, the senior software developer. In companies, job titles often include words that indicate the level of seniority. `Senior` means having a higher level or more experience in a role. For instance, a `senior software developer` usually has more experience than a `software developer`. -Other common terms include `junior`, for less experienced roles, and `lead` or `head`, for top-level positions. Here are some examples: +Other common terms include `junior`, for less experienced roles, and `lead` or `head`, for top-level positions. Aqui estão alguns exemplos: `Junior Accountant`: An entry-level position in accounting. diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca8e65f9c2c836eecd834.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca8e65f9c2c836eecd834.md index f58f1ed5ae3..06ec3b7a741 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca8e65f9c2c836eecd834.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ca8e65f9c2c836eecd834.md @@ -1,6 +1,6 @@ --- id: 657ca8e65f9c2c836eecd834 -title: Task 31 +title: Tarefa 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657caa4012f1cf846dcaa619.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657caa4012f1cf846dcaa619.md index 50128cfbddd..06ec5a53398 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657caa4012f1cf846dcaa619.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657caa4012f1cf846dcaa619.md @@ -1,6 +1,6 @@ --- id: 657caa4012f1cf846dcaa619 -title: Task 33 +title: Tarefa 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cafc142a867006734c3ed.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cafc142a867006734c3ed.md index d7a697ef524..9ad0b37b983 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cafc142a867006734c3ed.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cafc142a867006734c3ed.md @@ -1,6 +1,6 @@ --- id: 657cafc142a867006734c3ed -title: Task 36 +title: Tarefa 36 challengeType: 19 dashedName: task-36 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ccf3ab9ef2604c6ba696f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ccf3ab9ef2604c6ba696f.md index 686dd2c5f11..f04b855d9f2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ccf3ab9ef2604c6ba696f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ccf3ab9ef2604c6ba696f.md @@ -1,6 +1,6 @@ --- id: 657ccf3ab9ef2604c6ba696f -title: Task 41 +title: Tarefa 41 challengeType: 19 dashedName: task-41 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ccfa7eeb47305177d4a45.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ccfa7eeb47305177d4a45.md index d206a7abb9c..65ca5a9c5c2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ccfa7eeb47305177d4a45.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ccfa7eeb47305177d4a45.md @@ -1,6 +1,6 @@ --- id: 657ccfa7eeb47305177d4a45 -title: Task 42 +title: Tarefa 42 challengeType: 19 dashedName: task-42 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd2ab46d95e075065d952.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd2ab46d95e075065d952.md index f9b911948b7..3146e84fa8c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd2ab46d95e075065d952.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd2ab46d95e075065d952.md @@ -1,6 +1,6 @@ --- id: 657cd2ab46d95e075065d952 -title: Task 45 +title: Tarefa 45 challengeType: 22 dashedName: task-45 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd51dc73ba908478c9f70.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd51dc73ba908478c9f70.md index 178725e421e..95d00c51c7a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd51dc73ba908478c9f70.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd51dc73ba908478c9f70.md @@ -7,11 +7,11 @@ dashedName: dialogue-team-meeting-introduction # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd8d94290160a8732893d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd8d94290160a8732893d.md index 8704df39a39..aec839d4a05 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd8d94290160a8732893d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd8d94290160a8732893d.md @@ -28,7 +28,7 @@ The word `brief` means short in duration or length. When people say something is ### --feedback-- -This word is used to give permission or to allow an action to happen. This word is capitalized. +This word is used to give permission or to allow an action to happen. Esta palavra inicia com letra maiúscula. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd938cf0b0c0ad751ac23.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd938cf0b0c0ad751ac23.md index c800e05169d..05d2ebbf8d2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd938cf0b0c0ad751ac23.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd938cf0b0c0ad751ac23.md @@ -26,7 +26,7 @@ Listen to the audio and fill in the missing words. ### --feedback-- -It is used to introduce someone or something in the present context. This word is capitalized. +It is used to introduce someone or something in the present context. Esta palavra inicia com letra maiúscula. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd9ae412af80b2a7ff265.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd9ae412af80b2a7ff265.md index b68aceb8f77..dbbc377f4e1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd9ae412af80b2a7ff265.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657cd9ae412af80b2a7ff265.md @@ -1,6 +1,6 @@ --- id: 657cd9ae412af80b2a7ff265 -title: Task 53 +title: Tarefa 53 challengeType: 22 dashedName: task-53 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce2aee8f1d30e17cf89e5.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce2aee8f1d30e17cf89e5.md index f87fcc3370b..d822b9f034b 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce2aee8f1d30e17cf89e5.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce2aee8f1d30e17cf89e5.md @@ -1,6 +1,6 @@ --- id: 657ce2aee8f1d30e17cf89e5 -title: Task 57 +title: Tarefa 57 challengeType: 19 dashedName: task-57 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce387f809d60eb54f06d6.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce387f809d60eb54f06d6.md index 96b4674e9b6..070d3bfb502 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce387f809d60eb54f06d6.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce387f809d60eb54f06d6.md @@ -1,6 +1,6 @@ --- id: 657ce387f809d60eb54f06d6 -title: Task 58 +title: Tarefa 58 challengeType: 22 dashedName: task-58 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce5caa3e1460ff657c6b0.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce5caa3e1460ff657c6b0.md index ae117cbe662..525288a70cc 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce5caa3e1460ff657c6b0.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce5caa3e1460ff657c6b0.md @@ -23,7 +23,7 @@ The sentence below doesn't have an audio, you need to deduct the correct words b ### --feedback-- -This is used for asking about a singular item or concept. This word is capitalized. +This is used for asking about a singular item or concept. Esta palavra inicia com letra maiúscula. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce738f6c4eb10e81fd937.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce738f6c4eb10e81fd937.md index 9f40706aedd..59f51552e9e 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce738f6c4eb10e81fd937.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657ce738f6c4eb10e81fd937.md @@ -1,6 +1,6 @@ --- id: 657ce738f6c4eb10e81fd937 -title: Task 62 +title: Tarefa 62 challengeType: 19 dashedName: task-62 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657daf702ed04a29ee42de69.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657daf702ed04a29ee42de69.md index 849e4b9a7ea..a0b4a6aa1d5 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657daf702ed04a29ee42de69.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657daf702ed04a29ee42de69.md @@ -1,6 +1,6 @@ --- id: 657daf702ed04a29ee42de69 -title: Task 68 +title: Tarefa 68 challengeType: 22 dashedName: task-68 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df21cc45b1f66112fb8fc.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df21cc45b1f66112fb8fc.md index 8a533821946..86a2c5f82dd 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df21cc45b1f66112fb8fc.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df21cc45b1f66112fb8fc.md @@ -26,7 +26,7 @@ Listen to the audio and fill in the missing words. ### --feedback-- -This word is used to express happiness or satisfaction with something. This word is capitalized. +This word is used to express happiness or satisfaction with something. Esta palavra inicia com letra maiúscula. --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df39e98ace1673de4c399.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df39e98ace1673de4c399.md index 7a478042575..117f3f9014a 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df39e98ace1673de4c399.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df39e98ace1673de4c399.md @@ -1,6 +1,6 @@ --- id: 657df39e98ace1673de4c399 -title: Task 72 +title: Tarefa 72 challengeType: 19 dashedName: task-72 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df429a575a6679e72d48f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df429a575a6679e72d48f.md index 807e661770c..51e21706a5f 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df429a575a6679e72d48f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df429a575a6679e72d48f.md @@ -1,6 +1,6 @@ --- id: 657df429a575a6679e72d48f -title: Task 73 +title: Tarefa 73 challengeType: 22 dashedName: task-73 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df4ff04eed86814093f0f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df4ff04eed86814093f0f.md index 2a793a61072..4d71dc2f931 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df4ff04eed86814093f0f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657df4ff04eed86814093f0f.md @@ -7,11 +7,11 @@ dashedName: dialogue-a-training-session # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video. +Assista ao vídeo. # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e3c159dc94c6e33ba6115.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e3c159dc94c6e33ba6115.md index 4fdf3480509..54bec93f359 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e3c159dc94c6e33ba6115.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e3c159dc94c6e33ba6115.md @@ -1,6 +1,6 @@ --- id: 657e3c159dc94c6e33ba6115 -title: Task 76 +title: Tarefa 76 challengeType: 22 dashedName: task-76 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e3dc46c5a816f0b12fb76.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e3dc46c5a816f0b12fb76.md index 9f3b9c0f089..35bdaac0ae2 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e3dc46c5a816f0b12fb76.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e3dc46c5a816f0b12fb76.md @@ -1,6 +1,6 @@ --- id: 657e3dc46c5a816f0b12fb76 -title: Task 78 +title: Tarefa 78 challengeType: 22 dashedName: task-78 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e47d5fa5dea7cbdaf484b.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e47d5fa5dea7cbdaf484b.md index 9eeeaa9f0b2..a47b8cea3f1 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e47d5fa5dea7cbdaf484b.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e47d5fa5dea7cbdaf484b.md @@ -7,11 +7,11 @@ dashedName: dialogue-meeting-a-client # --description-- -Watch the video above to understand the context of the upcoming lessons. +Assista ao vídeo para entender o contexto das próximas lições. # --atividade-- -Watch the video +Assista ao vídeo # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4ab5b857f77e36c82a4d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4ab5b857f77e36c82a4d.md index 8b90d953dd6..f303c4e7417 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4ab5b857f77e36c82a4d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4ab5b857f77e36c82a4d.md @@ -1,6 +1,6 @@ --- id: 657e4ab5b857f77e36c82a4d -title: Task 87 +title: Tarefa 87 challengeType: 19 dashedName: task-87 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4b7d381d567e8d97967c.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4b7d381d567e8d97967c.md index 568e566f6e4..403e19843b4 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4b7d381d567e8d97967c.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4b7d381d567e8d97967c.md @@ -1,6 +1,6 @@ --- id: 657e4b7d381d567e8d97967c -title: Task 88 +title: Tarefa 88 challengeType: 22 dashedName: task-88 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4fd2ecf31280ef673f0d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4fd2ecf31280ef673f0d.md index b82ccb40c2f..a650474e397 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4fd2ecf31280ef673f0d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e4fd2ecf31280ef673f0d.md @@ -1,6 +1,6 @@ --- id: 657e4fd2ecf31280ef673f0d -title: Task 94 +title: Tarefa 94 challengeType: 19 dashedName: task-94 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e51218ff18f8191b76ea9.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e51218ff18f8191b76ea9.md index 874dd62327d..e7ca57aa314 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e51218ff18f8191b76ea9.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e51218ff18f8191b76ea9.md @@ -30,7 +30,7 @@ David: Wonderful to meet you all. I'm David, the project manager from FCC Corp. ### --feedback-- -Expresses David's positive feeling about meeting the group. This word is capitalized. +Expresses David's positive feeling about meeting the group. Esta palavra inicia com letra maiúscula. --- @@ -54,7 +54,7 @@ Indicates David's role or position within his company. ### --feedback-- -Short for `corporation`, denoting the type of organization David represents. This word is capitalized. +Short for `corporation`, denoting the type of organization David represents. Esta palavra inicia com letra maiúscula. # --cena-- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e5477269b94834908826f.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e5477269b94834908826f.md index df5d5cebaf6..af148c27d9c 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e5477269b94834908826f.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e5477269b94834908826f.md @@ -1,6 +1,6 @@ --- id: 657e5477269b94834908826f -title: Task 98 +title: Tarefa 98 challengeType: 22 dashedName: task-98 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e54f51fe1c983d840cb70.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e54f51fe1c983d840cb70.md index a99b295ac83..99116ab641d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e54f51fe1c983d840cb70.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e54f51fe1c983d840cb70.md @@ -1,6 +1,6 @@ --- id: 657e54f51fe1c983d840cb70 -title: Task 99 +title: Tarefa 99 challengeType: 19 dashedName: task-99 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e57c429a4dc8662a61c96.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e57c429a4dc8662a61c96.md index 3d0fca6e5b3..49be77d3e5d 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e57c429a4dc8662a61c96.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e57c429a4dc8662a61c96.md @@ -1,6 +1,6 @@ --- id: 657e57c429a4dc8662a61c96 -title: Task 102 +title: Tarefa 102 challengeType: 22 dashedName: task-102 --- diff --git a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e59605c6f688785fbb46d.md b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e59605c6f688785fbb46d.md index 1d3d4df2761..69c87dea240 100644 --- a/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e59605c6f688785fbb46d.md +++ b/curriculum/challenges/portuguese/21-a2-english-for-developers/learn-introductions-in-an-online-team-meeting/657e59605c6f688785fbb46d.md @@ -1,6 +1,6 @@ --- id: 657e59605c6f688785fbb46d -title: Task 103 +title: Tarefa 103 challengeType: 19 dashedName: task-103 --- diff --git a/curriculum/challenges/swahili/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/swahili/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index 3f8e0378ea4..467c3c79250 100644 --- a/curriculum/challenges/swahili/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/swahili/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: Use the s Tag to Strikethrough Text challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/swahili/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/swahili/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index 214fac94d8a..c95407712b3 100644 --- a/curriculum/challenges/swahili/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/swahili/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: Improve Compatibility with Browser Fallbacks challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/swahili/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/swahili/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index ed896f479f2..719abbd8846 100644 --- a/curriculum/challenges/swahili/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/swahili/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: Assigning the Value of One Variable to Another challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index f4a8ba513a1..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: Hatua ya 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you will learn about classes and objects by building a sudoku puzzle solver. - -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: - -```js -class ClassName: -``` - -First, you will create a 9x9 board by using classes and then populate it with the puzzle values. - -Begin by creating a `Board` class. - -# --hints-- - -Your class should be named `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index a149344a2cd..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: Hatua ya 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -A new instance of a class is created by using the function notation: `ClassName()`. The instantiation creates an empty object. Classes can have methods, which are like local functions for each instance. Methods are declared as follows: - -```python -class ClassName: - def method_name(): - pass -``` - -The `__init__` method is a special method that allows you to instantiate an object to a customized state. When a class implements an `__init__` method, `__init__` is automatically called upon instantiation. - -Create an `__init__` method inside your `Board` class. - -# --hints-- - -Your method should be named `__init__`. Don't add any parameters. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index 6f94e68ee8b..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: Hatua ya 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Add two parameters to the `__init__` method, order matters: - -- `self`: This is a reference to the instance of the class. It is a convention to name this parameter self. -- `board`: The board parameter is expected to be passed when creating an instance of the `Board` class. - -# --hints-- - -You should add the parameter `self` and `board` to the method. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index df2b6276c14..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: Hatua ya 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, assign the value of the `board` parameter (which is passed when creating an instance of the `Board` class) to an instance variable named `board` using `self.board`. - -`self.board` refers to the board attribute of the instance of the class. It's a variable that belongs to the object created from the `Board` class. - -# --hints-- - -You should have `self.board = board` within the `__init__` method. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index 5d565ff20dd..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: Hatua ya 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Now you will move to the actual construction of the board, which is a 9x9 grid. - -The input puzzle would look like this: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -The resulting grid would look like this: - -a board of sudoku - - -Define a method `__str__` within the `Board` class. Also, add the `self` parameter. This method is automatically called when you use the `str()` function on an instance of the class or when you use `print()` with the object. - -# --hints-- - -Your method should be named `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index 11c44edf500..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: Hatua ya 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -To create the top border of the board, create an `upper_lines` variable and assign it the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -This string represents the top border of the sudoku board in a visually appealing ASCII art style. It uses special Unicode characters to draw the borders and intersections. - -# --hints-- - -Assign the value of `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` to a variable named `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index 31716ca118f..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: Hatua ya 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -To create middle borders of the sudoku board, create a `middle_lines` variable and assign it the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -You should assign the value of `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` to a variable named `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index 0ce8940aa27..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: Hatua ya 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -To create the bottom border of the sudoku board, create a `lower_lines` variable and assign it the value of `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -You should add `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` to the code. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index 23162b3ff3a..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: Hatua ya 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Initialize a `board_string` variable with the content of `upper_lines`. This will be the starting point for building the entire visual representation of the sudoku board. - -# --hints-- - -You should have `board_string = upper_lines` within the `__str__` method. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index 34daa10094b..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: Hatua ya 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Now, you need to go over each row in the sudoku board. - -Enumeration is a convenient way to keep track of both the element and its position on a list. The `enumerate()` function is a built-in function in Python that takes an iterable (such as a list, tuple, or string) and returns an iterator that produces tuples containing indices and corresponding values from the iterable. - -Initiate a `for` loop to iterate over each row (`line`) in the sudoku board (`self.board`). - -Use enumeration to get both the index (`index`) and the content (`line`) of each row. - -The general syntax would be like this: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -You should have `for index, line in enumerate(self.board):` within the `__str__` method. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index 690b27dda22..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: Hatua ya 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Inside the loop, initialize an empty list `row_list` to store the elements of a single row in the sudoku board. - -# --hints-- - -You should have a `row_list` variable. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` should be an empty list. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index 1286ffc053a..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: Hatua ya 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Next, you are going to split each row in three segments, in order to represent the 3x3 squares properly. - -Create a nested `for` loop to iterate over each segment of the row. Use `square_no` and `part` as the iterating variable and the `enumerate()` function. For now, leave the `enumerate()` call empty. - -# --hints-- - -The inner loop should have `square_no` as the counter and `part` as the element from iterable. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -You should have `for square_no, part in enumerate()` within the existing `for` loop. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index c7c6b9261b5..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: Hatua ya 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now, you need to create the three line segments to pass to the `enumerate` function. - -Use list slicing to create the three lists of equal length representing the `line` segment of each 3x3 square and pass them to the `enumerate()` call. Add `start = 1` to start the enumeration from `1` instead of `0`. - -# --hints-- - -You should have `enumerate([line[:3], line[3:6], line[6:]], start=1)` within the inner `for` loop. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index 3afa10ba507..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: Hatua ya 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now, you would join the elements of the segment (`part`) with the pipe character (`|`). - -For that, first, use a `for` loop `for item in part` to access all elements. - -Then, use the `join()` method on the `|` character to join the elements of the segment (`part`). - -After that, convert each element to a string using `str(item)`. - -# --hints-- - -You should use the `join()` method on the `|` character to join the elements of the segment (`part`). add test for "" as well - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -You should call `str()` on each element in `part` using a generator expression. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -You should have `'|'.join(str(item) for item in part)` within the inner `for` loop. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index 889f3968979..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: Hatua ya 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Assign the joined string to the variable `row_square`. - -# --hints-- - -You should assign the value of `'|'.join(str(item) for item in part)` to a variable named `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index 447a7d1ea6b..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: Hatua ya 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Extend the `row_list` with the elements of the `row_square` string. - -# --hints-- - -You should have `row_list.extend(row_square)` within the innermost `for` loop. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index 2df2cbe79e0..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: Hatua ya 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Within the innermost loop, create an `if` statement to check if the current segment (`square_no`) is not the last one (i.e., not equal to `3`) - -# --hints-- - -You should check if the current segment (`square_no`) is not equal to `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index a190e3ecdee..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: Hatua ya 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Inside the `if` block, append a `║` character at the end of `row_list`. - -# --hints-- - -You should have `row_list.append('║')` within the `if` statement. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index b1f4a0fee7c..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: Hatua ya 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Next, you will create a string representation of the row with spaces between each element. - -For that, outside the innermost `for` loop body, create a string `row`. Assign the following formatted string `f'║ {" ".join(row_list)} ║\n'` to it to join the elements of `row_list` with a space in between. - -# --hints-- - -Assign the formatted string `f'║ {" ".join(row_list)} ║\n'` to a variable named `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index 5450edf9011..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: Hatua ya 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -When you would pass your input puzzle board, `0` would be used for empty cells. - -For a better visual representation, replace the empty cells in a row with a space using the `replace` method. - -The `replace()` method takes two arguments, the first one is the character to be replaced and the second one is the character to be replaced with. - -After replacing, assign the result to a variable `row_empty`. - -# --hints-- - -You should replace each `0` in the row with a space using the `replace` method. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -You should have `row_empty = row.repalce('0', ' ')` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index 82de2e552cd..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: Hatua ya 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` is gradually built up as the loop iterates over each row, creating the full ASCII art representation of the sudoku board. - -Add the modified `row_empty` string to the `board_string`. - -# --hints-- - -You should have `board_string += row_empty` within the outermost `for` loop. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index 0fa260feea6..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: Hatua ya 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Within the outermost `for` loop, create an `if` statement that checks if the current row index is less than `8`. This is because the last row of the sudoku board has an index of `8`, and you want to handle the last row differently. - -# --hints-- - -You should have `if index < 8:` within the outermost `for` loop. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index 8efd5a19c3a..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: Hatua ya 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now, you need to verify if the row is the last row inside a 3x3 square. This occurs when `index % 3` is equal to `2`. - -Inside your existing `if` block, nest another `if` to check that condition. - -# --hints-- - -You should have `if index % 3 == 2:` within the `if index < 8` statement. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index 34d96c836cc..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: Hatua ya 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -If the current row is the last row of a 3x3 square, in order to create a visually appealing border you need to append a different border string to `board_string` . - -Inside the `if` statement, add the following string to the current value of `board_string`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -You should have `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'` within the `if index % 3 == 2` statement. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index 25e5cde5dc8..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: Hatua ya 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, to handle other rows, if the inner condition is `False`, meaning the current row is not the last row of a 3x3 square, append the `middle_lines` string to `board_string`. Include this in an `else` block. - -Recall that `middle_lines` represents the middle borders of the sudoku board and includes horizontal separators. - -# --hints-- - -You should add an `else` block to the `if` statement. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += middle_lines` within the `else` block. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 3fe667ef513..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: Hatua ya 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Now, you need to handle the last row of the entire board. - -`lower_lines` represents the bottom border of the entire sudoku board. - -Create an `else` block to append the `lower_lines` string to `board_string` when the outer `if` condition is false. - -# --hints-- - -You should create an `else` block for the outermost `if` statement. Pay attention to the indentation. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -You should have `board_string += lower_lines` within the outermost `else` clause. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index 3e8156b6f24..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: Hatua ya 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -After the outer loop completes for all rows, return the final `board_string`. This string contains the complete visual representation of the sudoku board in ASCII art style, including borders and separators. - -# --hints-- - -You should return the `board_string` variable at the end of the outer `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index 4a068c4b35f..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: Hatua ya 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Now you will work on a method that finds the empty cells in the sudoku board. For that, within the `Board` class, create a method named `find_empty_cell`. It takes `self` as a parameter, representing the instance of the class. Include the `pass` keyword inside the function body. - -# --hints-- - -Your method should be named `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -You should add the parameter `self` to the method. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index 6a495783fa3..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: Hatua ya 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `find_empty_cell` method, create a `for` loop and use the `enumerate()` function to iterate over each row in the sudoku board. - -Use `row` for the index of the current row and `contents` for the elements of the current row. - -# --hints-- - -You should create a `for` loop to iterate over `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -You should have `for row, contents in enumerate(self.board):` within the `find_empty_cell` method. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index 524f623a446..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: Hatua ya 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -In the body of the for loop, add a `try` block. - -# --hints-- - -Add a `try` block. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index c4f3bae63ac..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: Hatua ya 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -In the `try` block, attempt to find the index of the first occurrence of `0` in the current row using `contents.index(0)`. Store the results in the variable `col`. - -# --hints-- - -Use the index of the first occurrence of `0` in the current row using `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -You should have `col = contents.index(0)` within the `try` block. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index cb727b0a33c..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: Hatua ya 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -If `0` is found, the code immediately returns a tuple (row, col) with the row index and column index of the empty cell. - -Return the `row` and `col` values - -# --hints-- - -You should have `return row, col` within the `try` block. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index 76e09f77bb2..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: Hatua ya 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Create an `except` block to handle the `ValueError` exception that is thrown if `0` is not found. - -# --hints-- - -You should have `except ValueError:` within the innermost `for` loop. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index 98866844d2b..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: Hatua ya 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -If the value `0` is not present in the current row, an exception would be thrown and the `except` block would execute. - -The `except` block should pass and continue to the next row. Achieve this by using `pass`. - -# --hints-- - -You should have `pass` within the `except` block. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index ee9935fc5de..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: Hatua ya 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -If the loop completes without finding any empty cells, the method should return `None` to indicate that the sudoku board is filled. - -Return `None` outside the `for` loop block. - -# --hints-- - -You should have `return None` outwith the `for` loop. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index ea509251aea..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: Hatua ya 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Next, you will work on a method that checks if a given number can be inserted into a specified row of the sudoku board. - -Create a method named `valid_in_row`. It should take three parameters: - -- `self`: representing the instance of the class. -- `row`: representing the row index. -- `num`: representing the number to be checked. - -Also, don't forget to add the `pass` keyword in the function body. - -# --hints-- - -You should have a `valid_in_row` method. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -You should have `def valid_in_row(self, row, num)` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index 8ae3de67c4c..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: Hatua ya 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Create an expression that checks if the number is not already present in that row. - -You should check if the number(`num`) is not present in `self.board[row]`. - -# --hints-- - -You should have `num not in self.board[row]` within `valid_in_row`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index 1c864f43edf..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: Hatua ya 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -If `num` is not in the row, the expression evaluates to `True` and it means the number is valid for insertion. - -If `num` is in the row, the expression evaluates to `False` and insertion would violate the rules. - -Return the value from the expression you wrote in the previous step, so that the validity of a number can be checked. - -# --hints-- - -You should have `return num not in self.board[row]` within `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 3334c99d7d5..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: Hatua ya 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Next, you will create a method that checks if a number can be inserted in a specified column of the sudoku board by checking if the number is not already present in that column for any row. - -For that, within the `Board` class, create a method named `valid_in_col`. - -It should take three parameters: - -- `self`: representing the instance of the class. -- `col`: representing the column index. -- `num`: representing the number to be checked. - -# --hints-- - -You should have a `valid_in_col` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `col`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index 73ecb7284ae..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: Hatua ya 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Now, you need to check if a given number is not equal to the number in the specified column of the current row. - -For that, first, iterate over the rows of the 2D list `self.board` using a `for` loop in the range `0` to `8`. Use `row` as the iteration variable. - -# --hints-- - -You should have `for row in range(9)` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index 2152e9e8721..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: Hatua ya 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -For each element in the specified column (`col`) of the current row (`row`), check whether the value at the current position in the 2D list is not equal to the provided `num`. - -# --hints-- - -You should have `self.board[row][col] != num` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index 54803e7c27c..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: Hatua ya 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -This expression generates a list of boolean values representing whether the condition `self.board[row][col] != num` is `True` or `False` for each element in the specified column across all rows. - -Pass this generator expression to the `all()` function to check if all the elements in the column are different from `num`. - -Recall that the syntax of the `all` function is as follows: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -You should have `all(self.board[row][col] != num for row in range(9))` within `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index 28e489a79ae..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: Hatua ya 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Return the result of the `all()` function call. - -# --hints-- - -You should return the result of the `all()` function call. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index 87097edc870..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: Hatua ya 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Next, you will work on a method that checks if a number can be inserted in the 3x3 square. - -Inside the `Board` class, create a method named `valid_in_square`. - -It should take four parameters: - -- `self`: represents the instance of the class. -- `row`: represents the row index. -- `col`: represents the column index. -- `num`: represents the number to be checked. - -# --hints-- - -You should have a `valid_in_square` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -The method should take four parameters: `self`, `row`, `col`, and `num`. Don't forget to add `pass` in the function body. Order matters. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index 188669f7b6c..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: Hatua ya 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Now you need to calculate the starting row index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -This can be achieved by this mathematical operation: `(row // 3) * 3`. Assign the result of this calculation to `row_start`. - -# --hints-- - -You should assign the result of `(row // 3) * 3` to `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index 81719dd96ee..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: Hatua ya 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Next, you need to calculate the starting column index for the 3x3 block in the board grid. - -For that, ensure that the starting row index for each 3x3 block is a multiple of 3. - -Similar to the previous step, this can be achieved by this mathematical operation: `(col // 3) * 3`. Assign the result of this calculation to `col_start`. - -# --hints-- - -You should assign the result of `(col // 3) * 3` to `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index c9dab9260aa..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: Hatua ya 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Create a `for` loop that starts at `row_start` and ends just before `row_start + 3`. You can use the `range()` function to generate the sequence. As an example, if `row_start` is `3`, the loop will iterate over the numbers `3`, `4`, and `5`. - -# --hints-- - -You should have `for row_no in range(row_start, row_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index 9688a2dead3..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: Hatua ya 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Inside the loop created in the previous step, nest another `for` loop to iterate over a sequence of three elements starting at `col_start`. Again, use the `range()` function to generate the sequence. - -# --hints-- - -You should have `for col_no in range(col_start, col_start + 3):` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index 6b91abb0009..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: Hatua ya 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -The next step is to check if the specified number (`num`) is already present in the current cell of the 3x3 square. - -Inside the inner `for` loop, create an `if` statement that checks if the current cell in `self.board` is equal to `num`. - -# --hints-- - -You should have `if self.board[row_no][col_no] == num` within `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index 25e3c9dd288..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: Hatua ya 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Inside the `if` block, return `False` to indicate that the number cannot be inserted into the square. - -# --hints-- - -You should return `False` inside the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index f7e87e10e03..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: Hatua ya 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -If the number is not present, it can be inserted into the square without violating the rules of sudoku. - -Return `True` in that case, and pay attention to the indentation. - -# --hints-- - -You should have `return True` outwith the outermost `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index d395ade77bd..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: Hatua ya 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Within the `Board` class, create another method `is_valid`. It would take three parameters: - -- `self` (representing the instance of the class), -- `empty` (a tuple representing the row and column indices of an empty cell) -- `num` (representing the number to be checked). - -This method checks if a given number is a valid choice for an empty cell in the sudoku board by validating its compatibility with the row, column, and 3x3 square of the specified empty cell. - -# --hints-- - -The method name should be `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -The method should take three parameters: `self`, `empty`, and `num`. Order matters - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index 077e81f5dce..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: Hatua ya 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Inside the method, unpack the `empty` tuple into `row` and `col`. - -# --hints-- - -You should have `row, col = empty` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index 972f455ac4e..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: Hatua ya 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Check if the number is valid for insertion in the specified row by calling `self.valid_in_row(row, num)` Assign the result to `valid_in_row` - -# --hints-- - -You should have `valid_in_row = self.valid_in_row(row, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index d4351f13558..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: Hatua ya 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Check if the number is valid for insertion in the specified column by calling `self.valid_in_col(col, num)` - -Assign the result to `valid_in_col`. - -# --hints-- - -You should have `valid_in_col = self.valid_in_col(col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index 62c999364bd..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: Hatua ya 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Check if the number is valid for insertion in the 3x3 square that contains the specified cell by calling `self.valid_in_square(row, col, num)`. - -Assign the result to `valid_in_square`. - -# --hints-- - -You should have `valid_in_square = self.valid_in_square(row, col, num)` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index 7c00d0f761d..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: Hatua ya 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Insert `valid_in_row`, `valid_in_col`, and `valid_in_square` into a list and pass it to the `all()` function. This will verify that all the function calls return `True`. - -# --hints-- - -You should have `all([valid_in_row, valid_in_col, valid_in_square])` within `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index dc967068063..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: Hatua ya 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Now, return the result of the `all()` call. - -# --hints-- - -You should return the result of the `all()` call. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index fdeeeb872e7..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: Hatua ya 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Next, you will work on a method that attempts to solve the sudoku in-place, meaning it would modify the existing sudoku board rather than creating a new one. - -Within the board class, create a method `solver` that takes one argument(`self`, representing the instance of the class). - -# --hints-- - -Your method should be named `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -You should add the parameter `self` to the method. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 3ffff5236c7..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: Hatua ya 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -First, check if there are any empty cells left in the sudoku board. - -Use the `find_empty_cell` function call on `self`. - -Also, use the walrus operator (:=) to assign the result of `self.find_empty_cell()` to the variable `next_empty`. - -By using the walrus operator, you can combine the assignment and the conditional check into a single line, making the code more concise and readable. - -# --hints-- - -You should have `next_empty := self.find_empty_cell()` within the `solver` method. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index 09360f07c68..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: Hatua ya 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Place the condition in an `if` statement and check if it is `None`. - -# --hints-- - -You should have `if (next_empty := self.find_empty_cell()) is None:` within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index 065f129a7bd..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: Hatua ya 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -If there are no empty cells (i.e., `next_empty` is `None`), the puzzle is solved. So, return `True`. - -# --hints-- - -You should return `True` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index e33cd18c017..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: Hatua ya 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Create an `else` block to cater the case where there are empty cells and the puzzle is unsolved. - -# --hints-- - -You should have an `else` clause within `solver`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index fdf70888750..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: Hatua ya 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -If there are still empty cells, create a loop in the `else` block that iterates over numbers from `1` to `9` (inclusive). Your loop should use the variable named `guess`. - -# --hints-- - -You should have `for guess in range(1,10):` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index 928d0c6a084..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: Hatua ya 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -For each number (`guess`), check if the number is a valid choice for the current empty cell using `self.is_valid(next_empty, guess)`. - -# --hints-- - -You should have `self.is_valid(next_empty, guess)` within the `for` loop. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index 2444fee0ce4..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: Hatua ya 66 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -If the guess is valid, the method updates the sudoku board with the guess by assigning `guess` to the cell specified by next_empty. - -Unpack the `next_empty` tuple to `row, col`. - -# --hints-- - -You should have `row, col = next_empty` within the innermost `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index 2f623926327..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: Hatua ya 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Access the cell at the given row and column in the sudoku board, and assign it the value of `guess`. - -# --hints-- - -You should have `self.board[row][col] = guess` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index c5a437af763..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: Hatua ya 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -While staying in the `if` block, recursively call `self.solver()` to try to solve the rest of the sudoku. - -# --hints-- - -You should have `self.solver()` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index 724e129790f..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: Hatua ya 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -If the recursive call to `self.solver()` returns `True`, it means the sudoku is solved. - -If the recursive call returns `True`, return `True` from the method. - -# --hints-- - -You should have `if self.solver():` within the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -You should have `return True` within `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index 3f475d8300a..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: Hatua ya 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -If `self.solver()` returns `False`, this means the `guess` led to an unsolvable sudoku. - -Outside the innermost `if` block, undo the guess by setting the cell value back to `0`. - -# --hints-- - -You should have `self.board[row][col] = 0` outside the innermost `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index f10efb3f3a8..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: Hatua ya 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Make your method return `False` when none of the guesses leads to a solution. - -# --hints-- - -You should return `False` within the outermost `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index 8224d6acf59..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: Hatua ya 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Outside the class definition, create a function to print and solve the sudoku board. - -Name it `solve_sudoku`. It should take a single parameter `board` that is a 2D list. - -# --hints-- - -You should not have a method `solve_sudoku` within the `Board` class. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -You should have a function named `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -The method should take a single `board` parameter. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index bf3a8b98539..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: Hatua ya 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Inside the `solve_sudoku` function, create a `gameboard` variable and assign it an instance of the `Board` class passing `board` as the argument. - -This initializes the sudoku board with the given initial state. - -# --hints-- - -You should have `gameboard = Board(board)` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index b9da4d151af..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: Hatua ya 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Now, add another `print()` call passing `gameboard` as the argument to print the current state of the sudoku board. - -Add a `print` call to print the following: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -You should have `print(f'\nPuzzle to solve:\n{gameboard}')` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index edbe6a31941..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: Hatua ya 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Create an `if` statement that checks if the `solver()` method call from the `gameboard` object returns `True`. - -Then, add a `print()` call inside the `if` block passing the following string: `'\nSolved puzzle:'`. - -# --hints-- - -You should have `if gameboard.solver():` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -You should have `print('\nSolved puzzle:')` within the `if` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index cc739271279..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: Hatua ya 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Add another `print` call to print the current state of the board. - -# --hints-- - -You should have `print(gameboard)` within the `if` statement. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index a52600375ae..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: Hatua ya 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Create an `else` clause and print the following string inside the new `else` block: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -You should have an `else` clause within `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -You should have `print('\nThe provided puzzle is unsolvable.')` within the `else` block. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index f7eaba6e66d..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: Hatua ya 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -In the end, return your instance of the `Board` class, which represents the final state of the sudoku board after attempting to solve it. - -# --hints-- - -You should have `return gameboard` within the `solve_sudoku` function. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index 14fad657c1b..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: Hatua ya 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Now it's time to play the game! - -A puzzle has been given in the code. - -Call the `solve_sudoku` method with `puzzle` as input. - -Now, you can see the solved puzzle as the output. - -With this, you are finished with building the sudoku solver! - -# --hints-- - -Call the `solve_sudoku` method with `puzzle` as input. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 1c7a3e36ed7..3e9be29342e 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ You should declare a variable `row_str`. You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index b5f67ffa2c2..2468032b200 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -13,7 +13,7 @@ Start by defining a function named `add_expense` that takes three parameters: `e # --hints-- -You should declare a function named `add_expense`. +You should use the `def` keyword to declare a function named `add_expense`. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index ea4b0c7f2cf..3f0bc71b039 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -7,13 +7,13 @@ dashedName: step-2 # --description-- -A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets `[]`, with each item separated from the following one by a comma. +A list in Python is a built-in data type that allows you to store many items in a single data structure. In Python, you create a list by putting items inside square brackets (`[]`), with each item separated from the following one by a comma. ```py numbers = [1, 2, 3, 4] ``` -Create an empty list named `expenses`. You will use it to store each of your expenses. +Use a pair of square brackets to create an empty list named `expenses`. You will use it to store each of your expenses. # --hints-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index 0ef1eeb8f2f..7ecdcccd7a2 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -7,21 +7,29 @@ dashedName: step-3 # --description-- -The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you can use the `.append()` list method: +The `expenses` parameter of your `add_expense` function will be a list of expenses. You want to be able to add items at the end of your list. For that you'll use the `.append()` list method: ```py my_list = [2, 4, 7] my_list.append(3) ``` -In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. +In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. + +Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. # --hints-- You should have `expenses.append()` in your function. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\)/m) +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append()")`)) }) +``` + +You should not have `pass` in your function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("add_expense").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index f463ecde845..4021ee0d260 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -7,7 +7,7 @@ dashedName: step-4 # --description-- -A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces `{}` and they contain key-value pairs separated by commas. Each key is followed by a colon `:` and the value: +A dictionary is another built-in data type in Python. A dictionary is a collection of data in the form of *key*-*value* pairs. Dictionaries are defined with curly braces (`{}`) and they contain key-value pairs separated by commas. Each key is followed by a colon (`:`) and the value: ```py {'amount': 50.0, 'category': 'Food'} @@ -19,10 +19,20 @@ Create a dictionary with a key `'amount'` and value of the `amount` parameter an # --hints-- -You should have `expenses.append({'amount': amount})` in your function. +You should pass a dictionary as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) +`)) }) +``` + +You should pass `{'amount': amount}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index 18143670be7..592527de434 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -11,10 +11,20 @@ Add another key-value pair to the dictionary you are appending to the `expense` # --hints-- -You should have `expenses.append({'amount': amount, 'category': category})` in your code. +You should add a second key-value pair to the dictionary you are passing as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*,\s*("|')category\2\s*:\s*category\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) and len(node[0].tree.keys) == 2 +`)) }) +``` + +You should pass `{'amount': amount, 'category': category}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount, 'category': category})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index c30a1828110..b5638a01822 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -Start by defining a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. +Next, define a function named `print_expenses` that takes one parameter `expenses`. This function will later be used to display each expense in your list. Fill the body of your new function with a `pass` statement. diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index 39a75d9d5a0..cc2c30f5e5a 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -11,10 +11,22 @@ Inside the `print_expenses` function, create a `for` loop that iterates over eac # --hints-- -You should have `for expense in expenses:` in your `print_expenses` function. Remember to use `pass` within the loop body. +You should create a `for` loop that iterates over `expenses` in your `print_expenses` function. Remember to use `pass` within the loop body. ```js -({ test: () => assert.match(code, /for\s+expense\s+in\s+expenses\s*:/ ) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_iter().is_equivalent("expenses")`)) }) +``` + +You should use `expense` as the loop variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_vars().is_equivalent("expense")`)) }) +``` + +You should have `pass` only inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index 88eb6e2a01b..902340bdae9 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -9,14 +9,20 @@ dashedName: step-8 Next, you are going to display the details for each expense. -Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. Leave the placeholders empty for now. +Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. # --hints-- -You should have `print(f'Amount: {expense}, Category: {expense}')` in your `for` loop. +You should print `f'Amount: {expense}, Category: {expense}'` in your `for` loop. ```js -({ test: () => assert.match(code, /^\s+print\s*\(\s*f("|')Amount: \{\s*expense\s*\}, Category: \{\s*expense\s*\}\1\s*\)/m) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].has_call("print(f'Amount: {expense}, Category: {expense}')")`)) }) +``` + +You should not have `pass` inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_bodies()[0].has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index b8c1c542d38..daef4fbf3ea 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -7,7 +7,12 @@ dashedName: step-9 # --description-- -You can access values in a dictionary through its keys. You need to use the bracket notation and include the key between the square brackets: +In Python, an important thing to know is that the same type of quote used to define a string cannot be used inside it. For example, the string `'I'm a string!'` is not valid. To use the single quote inside that string you should either: + +- Escape the quote by prepending a backlash to it: `'I\'m a string!'` +- Or use double quotes to define the string: `"I'm a string!"` (preferred). + +You can access values in a dictionary through its keys. You need to use bracket notation and include the key between the square brackets: ```py my_dict = {'amount': 50.0, 'category': 'Food'} diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index bf23fd587a2..cc837ef992b 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -7,7 +7,9 @@ dashedName: step-10 # --description-- -You will need a function to calculate the total amount of expenses. Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. +You will need a function to calculate the total amount of expenses. + +Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. # --hints-- @@ -21,7 +23,7 @@ You should define a function named `total_expenses`. }) ``` -Your`total_expenses` function should take a single `expenses` parameter. +Your `total_expenses` function should take a single `expenses` parameter. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index 30c55e4f1a1..5436f2eb0ab 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -13,14 +13,22 @@ Lambda functions are brief, anonymous functions in Python, ideal for simple, one lambda x: expr ``` -In the example above, `x` is a parameter to be used in the expression `expr`. Create a `test` variable and assign it a lambda function that takes an `x` parameter and returns `x * 2`. +In the example above, `x` represents a parameter to be used in the expression `expr`, and it acts just like any parameter in a traditional function. `expr` is the expression that gets evaluated and returned when the lambda function is called. + +Create a variable named `test` and assign it a lambda function that takes an `x` parameter and returns `x * 2`. # --hints-- -You should have `test = lambda x: x * 2` in your code. +You should declare a variable named `test`. ```js -({ test: () => assert.match(code,/^test\s*=\s*lambda\s+x\s*:\s*x\s*\*\s*2/m)}) +({ test: () => assert(runPython(`_Node(_code).has_variable("test")`))}) +``` + +You should assign `lambda x: x * 2` to your `test` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_variable("test").is_equivalent("test = lambda x: x * 2")`))}) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index 122d5d36b47..6095c4e41d5 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -13,9 +13,11 @@ Lambda functions can be valuably combined with the `map()` function, which execu map(lambda x: x * 2, [1, 2, 3]) ``` +The function to execute is passed as the first argument, and the iterable is passed as the second argument. + The result of the example above would be `[2, 4, 6]`, where each item in the list passed to `map()` has been doubled by the action of the lambda function. -Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. +Modify your `print()` call to print the result of calling `map()` with `test` as the first argument, and `[2, 3, 5, 8]` as the second argument. You won't be able to see a readable output yet. # --hints-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index bcd9939daf7..0d904e4d542 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -1,6 +1,6 @@ --- id: 658238f7604f154ea9a23e1e -title: Hatua ya 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- @@ -9,7 +9,7 @@ dashedName: step-15 The `sum()` function returns the sum of the items in the iterable which is passed as its argument. You are going to use `sum()` together with `map()` and `lambda` functions to get the total amount of expenses. -For now, make a little test and modify your current `print()` call by passing `sum(map(test, [2, 3, 5, 8]))` as the argument. +For now, make a little test and modify your current `print()` call replacing the `list()` call with a call to the `sum()` function passing it the current `map()` call as the argument. # --hints-- @@ -36,7 +36,7 @@ def total_expenses(expenses): --fcc-editable-region-- test = lambda x: x * 2 -print(map(test, [2, 3, 5, 8])) +print(list(map(test, [2,3,5,8]))) --fcc-editable-region-- expenses = [] diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index 640b91aba4a..0c4b5191a9a 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -1,28 +1,22 @@ --- id: 65823b0167fd894f4a7ea60a -title: Hatua ya 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- # --description-- -Next, you are going to implement the same logic to the `total_expenses` function. +Next, you are going to implement the same logic within the `total_expenses` function. For now, delete both the `test` function and the `print()` call. # --hints-- -You should delete your `test` variable. +You should delete your `test` variable and the related `print()` call. ```js -({ test: () => assert.notMatch(code, /test\s*=/) }) -``` - -You should delete your `print(sum(map(test, [2, 3, 5, 8])))` call. - -```js -({ test: () => assert.notMatch(code, /print\s*\(\s*sum/) }) +({ test: () => assert.isFalse(runPython(`_Node(_code).has_variable("test")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index ac2e4bcb1ae..af93b0e12fc 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -1,27 +1,28 @@ --- id: 65823bbbdb4eaa4f9d20a0fb -title: Hatua ya 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- # --description-- -Within your `total_expenses` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the value of the `'amount'` key in the `expense` dictionary. +In the `total_expenses` function, you'll now integrate a lambda function. Replace `pass` with a lambda function that has `expense` as its parameter. + +`expense` is expected to be a dictionary, and your lambda function should return the value of the `'amount'` key in the `expense` dictionary. # --hints-- -You should have `lambda expense: expense['amount']` in your `total_expenses` function. +You should create a `lambda` function that uses the parameter `expense` and returns `expense['amount']` in your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_stmt("lambda expense: expense['amount']")`)) }) +``` + +You should not have `pass` in your `total_expenses` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("total_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index d1f109bda2e..c06ab93c264 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -1,6 +1,6 @@ --- id: 65823cfc74aa564ffc460489 -title: Hatua ya 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- @@ -11,17 +11,22 @@ Now, call `map()` passing your `lambda` function as the first argument and the ` # --hints-- -You should have `map(lambda expense: expense['amount'], expenses)` in your code. +You should call the `map()` function inside the `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("total_expenses").find_calls("map")) == 1`)) }) +``` + +You should pass your `lambda` function as the first argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[0].is_equivalent("lambda expense: expense['amount']")`)) }) +``` + +You should pass the `expenses` list as the second argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index aa640d4b7e6..29c09ae0262 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -1,6 +1,6 @@ --- id: 65823dde36392f505a39f7c7 -title: Hatua ya 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- @@ -11,17 +11,10 @@ Finally, pass your `map()` call to the `sum()` function to obtain the total expe # --hints-- -You should return `sum(map(lambda expense: expense['amount'], expenses))` from your `total_expenses` function. +You should call the `sum()` function passing it your current `map()` call as the argument and return the result from your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+sum\s*\(\s*map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_return("sum(map(lambda expense: expense['amount'], expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index d15c8417b08..63af9be4151 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -1,6 +1,6 @@ --- id: 65823e87c9741750a22085a7 -title: Hatua ya 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index 474569c614e..289c306da64 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -1,27 +1,26 @@ --- id: 65823ff0d4b991510fade1a8 -title: Hatua ya 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- # --description-- -Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category`. +Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -You should have `lambda expense: expense['category'] == category` inside the `filter_expenses_by_category` function. +You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) +``` + +You should not have `pass` inside the `filter_expenses_by_category` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index 613166ffa61..fc8cab1fff0 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -1,6 +1,6 @@ --- id: 65824111a09164518320088d -title: Hatua ya 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- @@ -13,23 +13,30 @@ The `filter()` function allows you to select items from an iterable, such as a l filter(my_function, my_list) ``` -`filter()` returns an iterator in which the elements of `my_list` are included, for which `my_function` returns `True`. An iterator is a special object that enables you to iterate over the elements of a collection, like a list. +`filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. + +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Within the `filter_expenses_by_category` function, call `filter()` passing the `lambda` function you wrote in the previous step as the first argument and the `expenses` list as the second argument. # --hints-- -You should have `filter(lambda expense: expense['category'] == category, expenses)` in your `filter_expenses_by_category` function. +You should call `filter()` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")) == 1`)) }) +``` + +You should pass `lambda expense: expense['category'] == category` as the first argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[0].is_equivalent("lambda expense: expense['category'] == category")`)) }) +``` + +You should pass `expenses` as the second argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index ddc019919af..f0f6c12e365 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -1,6 +1,6 @@ --- id: 658244fdf4b0265334711664 -title: Hatua ya 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- @@ -14,14 +14,7 @@ Finally, return the result of the `filter()` call. You should return the result of the `filter()` call from your `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_return("filter(lambda expense: expense['category'] == category, expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index 02d900567f3..cae351eee31 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -1,6 +1,6 @@ --- id: 65824561f3478e5371a33ae5 -title: Hatua ya 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- @@ -19,6 +19,8 @@ You should define a function named `main()` without parameters. ({ test: () => assert(runPython(` import inspect inspect.isfunction(main) + sig = str(inspect.signature(main)) + sig == '()' `)) }) ``` @@ -26,12 +28,7 @@ You should define a function named `main()` without parameters. You should move the `expenses` list inside the `main()` function body. ```js -({ test: () => assert(runPython(` - import inspect - sig = str(inspect.signature(main)) - sig == '()' - `)) -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_body().is_equivalent("expenses = []")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 942b77066b7..23b116aea50 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -1,6 +1,6 @@ --- id: 658246c28575d653d1f89b59 -title: Hatua ya 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- @@ -18,30 +18,16 @@ Below the `expenses` list, create a `while` loop. Use `True` for the condition, # --hints-- -You should have `while True:` in your `main()` function. +You should create a `while` loop using `True` as the condition within your `main()` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+while\s+True\s*:/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_conditions()[0].is_equivalent("True")`)) }) ``` -You should have `print('\nExpense Tracker')` in your `while` loop. +You should print `'\nExpense Tracker'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')\\nExpense\s*Tracker\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print")[0].is_equivalent("print('\\\\nExpense Tracker')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index 42bcd137f75..150c7896f1d 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -1,6 +1,6 @@ --- id: 65824872894f59546e3084e2 -title: Hatua ya 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- @@ -9,21 +9,18 @@ dashedName: step-26 The `while` loop you created in the previous step is an infinite loop that will allow the program to continuously present menu options until the user decides to exit. -After the `print()` call, add another one to print the string `'1. Add an expense'`. +After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. # --hints-- -You should have `print('1. Add an expense')` in your `while` loop. +You should print `'1. Add an expense'` within your `while` loop after the existing `print()` call. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')1\.\sAdd\san\sexpense\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index 152a0f727ca..a557268c2db 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -1,6 +1,6 @@ --- id: 65824a1b16631c54fa524154 -title: Hatua ya 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- @@ -11,17 +11,14 @@ Next, add another `print()` call and pass the string `'2. List all expenses'`. # --hints-- -You should have `print('2. List all expenses')` in your `while` loop. +You should print `'2. List all expenses'` in your `while` loop after the existing `print()` calls. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')2\.\sList\sall\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index 66fc75f23c0..662e4d59211 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -1,53 +1,44 @@ --- id: 65824c7b4e2da85597693dcf -title: Hatua ya 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- # --description-- -Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. +Provide the other menu options by printing the following three strings in your `while` loop: `'3. Show total expenses'`, `'4. Filter expenses by category'`, and `'5. Exit'`. Keep adding the `print()` calls in order. # --hints-- You should have `print('3. Show total expenses')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')3\.\sShow\stotal\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('4. Filter expenses by category')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')4\.\sFilter\sexpenses\sby\scategory\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` You should have `print('5. Exit')` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')5\.\sExit\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')", "print('5. Exit')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index 726c88944b4..6c5f7e20351 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -1,6 +1,6 @@ --- id: 65824dfdb6815d563b2d3256 -title: Hatua ya 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- @@ -13,17 +13,18 @@ Inside your `while` loop, call the `input()` function passing the string `'Enter # --hints-- -You should have `choice = input('Enter your choice: ')` in your `while` loop. +You should declare a variable named `choice` within your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+choice\s*=\s*input\s*\(\s*("|')Enter\syour\schoice:\s\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].has_variable("choice") +`)) }) +``` + +You should assign the result of the `input()` function, with the string `'Enter your choice: '` as its argument, to your `choice` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_variable("choice").is_equivalent("choice = input('Enter your choice: ')") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index 6013cf72fde..8f20aa4cf58 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -1,6 +1,6 @@ --- id: 6582507654b3ed5712341382 -title: Hatua ya 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- @@ -15,30 +15,27 @@ Inside the `if` statement body, declare a variable `amount` and assign it an emp # --hints-- -You should have `if choice == '1':` in your `while` loop: +You should create an `if` statement that checks if `choice` is equal to `'1'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[0] +cond.is_equivalent("choice == '1'") or cond.is_equivalent("'1' == choice") +`)) }) ``` -You should have `amount = input()` in your `if` statement body: +You should declare a variable named `amount` in your `if` statement body. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("amount") +`)) }) +``` + +You should assign an empty `input()` call to your `amount` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input()") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index e0c1bb1da81..15f326cb257 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -1,6 +1,6 @@ --- id: 658252f6b1526d57b103d48a -title: Hatua ya 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- @@ -13,17 +13,11 @@ Pass the string `'Enter amount: '` to your empty `input()` call, so you can stor # --hints-- -You should have `amount = input('Enter amount: ')` in your `if` statement. +You should pass `'Enter amount: '` to the `input()` call assigned to the `amount` variable. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*("|')Enter amount:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input('Enter amount: ')") +`)) }) ``` # --seed-- @@ -44,7 +38,6 @@ def total_expenses(expenses): def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) ---fcc-editable-region-- def main(): expenses = [] while True: @@ -56,7 +49,7 @@ def main(): print('5. Exit') choice = input('Enter your choice: ') - +--fcc-editable-region-- if choice == '1': amount = input() --fcc-editable-region-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index b53b2862b16..275d3f75aac 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -1,6 +1,6 @@ --- id: 658254db6e12485a48130f57 -title: Hatua ya 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- @@ -13,17 +13,11 @@ Pass `input('Enter amount: ')` to the `float()` function. # --hints-- -You should have `amount = float(input('Enter amount: '))` in your `if` statement. +You should pass `input('Enter amount: ')` to the `float()` function in the assignment of `amount`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = float(input('Enter amount: '))") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index b459b8634cf..0249ed79c87 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -1,27 +1,26 @@ --- id: 658255d5f955175b270f251d -title: Hatua ya 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- # --description-- -Inside your `if` statement, create a variable `category` to store the expense category. Assign it `input('Enter category: ')`. +Inside your `if` statement, create a variable named `category` to store the expense category. Assign it a call to `input()` and use the `'Enter category: '` as the argument. # --hints-- -You should have `category = input('Enter category: ')` in your `if` statement. +You should declare a variable named `category` in your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("category")`)) }) +``` + +You should assign `input('Enter category: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("category").is_equivalent("category = input('Enter category: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index f3685bca692..fd25bf41ee6 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -1,13 +1,13 @@ --- id: 6582575b8089f85b8b92d7c8 -title: Hatua ya 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- # --description-- -After getting the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. +Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. After getting the `amount` and `category` using `input()`, call the `add_expense` function, passing three arguments: `expenses`, `amount` and `category`. @@ -17,17 +17,22 @@ After getting the `amount` and `category` using `input()`, call the `add_expense # --hints-- -You should have `add_expense(expenses, amount, category)` in your `if` statement. +You should call the `add_expense()` function within your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)\s*add_expense\s*\(\s*expenses\s*,\s*amount\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_calls("add_expense")) == 1`)) }) +``` + +You should pass three arguments to your `add_expense()` call: `expenses`, `amount`, and `category`. The order matters. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_call("add_expense(expenses, amount, category)")`)) }) +``` + +Your `add_expense()` call should come after the assignment of `amount` and `category`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].is_equivalent("amount = float(input('Enter amount: '))\\ncategory = input('Enter category: ')\\nadd_expense(expenses, amount, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index 31f2bbebcc1..7ca152b9bde 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -1,42 +1,31 @@ --- id: 658258c0e5fbe85c14c060cf -title: Hatua ya 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- # --description-- -To list all expenses, you can use an `elif` statement after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. +To list all expenses, you can use an `elif` clause after an `if` statement. The `elif` checks additional conditions and only works following an `if` statement. -Create an `elif` statement to check if the user's choice equals the string `2`. Inside the `elif` statement, print the string `'\nAll Expenses:'`. +Create an `elif` clause to check if the user's choice equals the string `'2'`. Inside the `elif` clause, print the string `'\nAll Expenses:'`. # --hints-- -You should have `elif choice == '2':` after your `if` statement. +You should create an `elif` clause that checks that `choice` is equal to `'2'` after your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[1] +cond.is_equivalent("choice == '2'") or cond.is_equivalent("'2' == choice") +`)) }) ``` -You should have `print('\nAll Expenses:')` inside your `elif` statement. +You should print `'\nAll Expenses:'` inside your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index e277bbca5a9..0bc3402cf58 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -1,6 +1,6 @@ --- id: 65825a9520a0795c8afbef50 -title: Hatua ya 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- @@ -11,17 +11,16 @@ After the `print()` call, call the `print_expenses` function to display all the # --hints-- -You should have `print_expenses(expenses)` in your `elif` statement. +You should call the `print_expenses()` function within your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)\s*print\s*_expenses\s*\(\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].find_calls("print_expenses")) == 1`)) }) +``` + +You should pass the `expenses` list as the argument to your `print_expenses()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print_expenses(expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index 7cb7fc766dd..6c1297bc068 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -1,6 +1,6 @@ --- id: 65825b758fe85a5cebabc8c5 -title: Hatua ya 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- @@ -13,30 +13,19 @@ If it's true, it means the user wants to see the total expenses. So call `print( # --hints-- -You should have `elif choice == '3':` in your code. +You should create an `elif` clause that checks if `choice == '3'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert.match(function_body, /\s+elif\s+choice\s*==\s*("|')3\1\s*:/); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[2] +cond.is_equivalent("choice == '3'") or cond.is_equivalent("'3' == choice") +`)) }) ``` -You should have `print('\nTotal Expenses: ', total_expenses(expenses))` in your `elif` statement. +You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')3\1\s*:\s*print\s*\(\s*("|')\\nTotal\sExpenses:\s\2\s*,\s*total_expenses\s*\(\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[2].has_call("print('\\\\nTotal Expenses: ', total_expenses(expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index 7de30018568..676b0ec42f7 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -1,40 +1,35 @@ --- id: 65825cda2668995d5168e37c -title: Hatua ya 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- # --description-- -Create another `elif` statement that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. +Create another `elif` clause that checks if `choice == '4'`. Inside the new `elif`, create a variable `category` and assign it `input('Enter category to filter: ')` to filter the expense category. # --hints-- -You should have `elif choice == '4':` in your code. +You should create an `elif` clause that checks if `choice == '4'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[3] +cond.is_equivalent("choice == '4'") or cond.is_equivalent("'4' == choice") +`)) }) ``` -You should have `category = input('Enter category to filter: ')` in your new `elif` statement. +You should declared a variable named `category` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("category")`)) }) +``` + +You should assign `input('Enter category to filter: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("category").is_equivalent("category = input('Enter category to filter: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index ecc11ef750c..d354cb667cb 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -1,6 +1,6 @@ --- id: 65825e96b5db5f5dee6bf57c -title: Hatua ya 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- @@ -11,17 +11,10 @@ After getting the category, print the following f-string `f'\nExpenses for {cate # --hints-- -You should print `f'\nExpenses for {category}:'` inside the `elif` statement. +You should print `f'\nExpenses for {category}:'` after the assignment of `category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index 15752619316..669de4ae215 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -1,6 +1,6 @@ --- id: 6582601b2987045e8e7da994 -title: Hatua ya 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- @@ -11,17 +11,22 @@ After your `print()` call, you need to filter the expenses and print the filtere # --hints-- -You should have `expenses_from_category = filter_expenses_by_category(expenses, category)` in your `elif` statement. +You should declare a variable named `expenses_from_category` in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("expenses_from_category")`)) }) +``` + +You should call `filter_expenses_by_category()` passing `expenses` and `category` as the arguments and assign it to your `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("expenses_from_category").is_equivalent("expenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) +``` + +Your `expenses_from_category` variable should come after the `print()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index e5b89214b57..4801aa6d338 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -1,27 +1,26 @@ --- id: 6582622cb6c11a5f4c5d79b4 -title: Hatua ya 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- # --description-- -Still within the `elif` statement, pass `expenses_from_category` iterator to a `print_expenses` call. +Still within the `elif` clause, pass the `expenses_from_category` iterator to a `print_expenses` call. # --hints-- -You should have `print_expenses(expenses_from_category)` in your code. +You should call `print_expenses()` passing `expenses_from_category` as the argument in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)\s*print_expenses\s*\(\s*expenses_from_category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_call("print_expenses(expenses_from_category)")`)) }) +``` + +Your `print_expenses()` call should come after the `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)\\nprint_expenses(expenses_from_category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index 45c98cac5be..911a95cf962 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -1,42 +1,31 @@ --- id: 6582687859366a618424d84b -title: Hatua ya 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- # --description-- -To provide a way to exit the program, use another `elif` statement to check if `choice` equals the string `'5'`. +To provide a way to exit the program, use another `elif` clause to check if `choice` equals the string `'5'`. -Inside the new `elif` statement, print the string `'Exiting the program.'` to show that the program is terminating its execution. +Inside the new `elif` clause, print the string `'Exiting the program.'` to show that the program is terminating its execution. # --hints-- -You should have `elif choice == '5':` in your code. +You should create an `elif` clause that checks if `choice == '5'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4] +cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice") +`)) }) ``` -You should print `'Exiting the program.'` in your new `elif` statement. +You should print `'Exiting the program.'` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:\s*print\s*\(\s*("|')Exiting\sthe\sprogram.\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 4dd301c323d..712c3072018 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -1,27 +1,20 @@ --- id: 65826a6e9d189a623141c726 -title: Hatua ya 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- # --description-- -Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` statement. +Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` clause. # --hints-- -You should have a `break` statement inside your last `elif`. +You should have a `break` statement after the `print()` call inside your last `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+break/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].is_equivalent("print('Exiting the program.')\\nbreak")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index 98803d14f64..f2fec123e71 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -1,13 +1,15 @@ --- id: 65826af5b226a5628aa154b1 -title: Hatua ya 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- # --description-- -Finally, call your `main()` function, and try the expense tracker program. +Finally, call your `main()` function, and try the expense tracker program in the console. + +With that, the expense tracker project is complete! # --hints-- @@ -74,3 +76,58 @@ def main(): --fcc-editable-region-- ``` + +# --solutions-- + +```py +def add_expense(expenses, amount, category): + expenses.append({'amount': amount, 'category': category}) + +def print_expenses(expenses): + for expense in expenses: + print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') + +def total_expenses(expenses): + return sum(map(lambda expense: expense['amount'], expenses)) + +def filter_expenses_by_category(expenses, category): + return filter(lambda expense: expense['category'] == category, expenses) + + +def main(): + expenses = [] + while True: + print('\nExpense Tracker') + print('1. Add an expense') + print('2. List all expenses') + print('3. Show total expenses') + print('4. Filter expenses by category') + print('5. Exit') + + choice = input('Enter your choice: ') + + if choice == '1': + amount = float(input('Enter amount: ')) + category = input('Enter category: ') + add_expense(expenses, amount, category) + + elif choice == '2': + print('\nAll Expenses:') + print_expenses(expenses) + + elif choice == '3': + print('\nTotal Expenses: ', total_expenses(expenses)) + + elif choice == '4': + category = input('Enter category to filter: ') + print(f'\nExpenses for {category}:') + expenses_from_category = filter_expenses_by_category(expenses, category) + print_expenses(expenses_from_category) + + elif choice == '5': + print('Exiting the program.') + break + +main() + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index d4a47183955..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Step 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Now, remove the indentation and see what happens to the output. - -# --hints-- - -You should remove the indentation from the line where you call `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index e86f6b8eb32..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Step 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Python relies on indentation to indicate blocks of code. A colon at the end of a line is a signal that a new indented block of code will follow. - -So, when no indented block is found after the final colon, the code execution stops and an `IndentationError` is thrown. Therefore, there's no output anymore. - -Restore the indentation for your `print(i)` call. - -# --hints-- - -You should indent `print(i)` inside your `for` loop body. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Your code contains invalid syntax and/or invalid indentation. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index 5676d3b42aa..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: Hatua ya 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. - -This is what a Binary Search Tree looks like: - -a binairy search tree - -Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. - -# --hints-- - -You should use the `class` keyword to declare an empty class named `TreeNode`. Don't forget to add the colon at the end and the `pass` keyword to fill the class body. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index d992b56eb21..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: Hatua ya 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters and use the `pass` keyword to avoid an error. - -# --hints-- - -You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index cd4a8b4c65d..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: Hatua ya 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. - -# --hints-- - -You should add the `self` parameter to the method. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -You should add the `key` parameter to the method. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index 6297c56c319..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: Hatua ya 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. - -# --hints-- - -You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index adb187d6a3e..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: Hatua ya 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. - -# --hints-- - -You should assign `None` to the `left` attribute of the node using `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -You should assign `None` to the `right` attribute of the node using `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index 6ed51348e0f..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: Hatua ya 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Create another empty class called `BinarySearchTree` that represents a binary search tree. - -# --hints-- - -You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index 7599247bf16..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: Hatua ya 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. - -# --hints-- - -You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index ba9faab6b10..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: Hatua ya 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Inside the `__init__` method, delete `pass` and initialize an instance attribute called `root` to the value `None`. - -The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. - -# --hints-- - -You should initialize the `root` attribute to `None` using `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index 4f4c0e86ad9..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: Hatua ya 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Next, you need to define a mechanism to insert nodes in the tree. For that, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. - -# --hints-- - -You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index bec82c85b56..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: Hatua ya 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. - -Add `key` as the second parameter to the function definition. - -# --hints-- - -The `insert` method should contain the `self` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -The `insert` method should contain the `key` parameter. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index 869ffd90582..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: Hatua ya 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Now, inside the `insert` method, you need to call another method `_insert()` that performs the actual insertion. You are going to define the `_insert` method soon. - -Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. - -Note that: - -- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. -- `key`: passes the `key` value you want to insert as the second argument. - -# --hints-- - -You should recursively call the `_insert()` method using `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -You should pass `self.root` and `key` to your `_insert()` call. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -You should assign the return value of your `_insert()` call to `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index f3b4f1b6310..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: Hatua ya 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Now you are going to define an `_insert` method, which is a helper function and does the actual insertion. This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. - -Define an `_insert` method with the parameters `self`, `node` and `key`. - -# --hints-- - -You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Your `_insert` method should take three parameters: `self`, `node` and `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index e8cdd4b742c..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: Hatua ya 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. - -Inside the method body, write an `if` statement that checks if `node is None`. Inside the `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. - -# --hints-- - -You should write an `if` statement to check if `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -You should return `TreeNode(key)` from the `if` block. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 24411287d1d..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: Hatua ya 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Now you need to recursively traverse the tree and insert the values using the principle for binary trees: - -- Values smaller than the key are placed in the left subtree -- Values greater than the key are placed in the right subtree - -After your existing conditional statement, write another `if` statement to check if `key` is strictly less than `node.key`. - -# --hints-- - -You should write another if statement to check if `key` is strictly less than `node.key`. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index 33377e5f442..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: Hatua ya 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -If `key` < `node.key` returns `True`, then the new node should be placed in the left subtree. - -Delete `pass` and recursively call the `_insert` method on the left child of the current node. Then, assign the result to the `left` attribute of the current node. - -# --hints-- - -You should call the `self._insert` method passing `node.left` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the `left` attribute of the current node. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index d18d1b1f94a..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: Hatua ya 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Add an `elif` conditional statement that checks if `key` > `node.key`. - -# --hints-- - -You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index cda7b177494..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: Hatua ya 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Inside your `elif` clause, replace `pass` with a call to the `_insert` method on the right child of the current node. Assign the result to the `right` attribute of the current node. - -# --hints-- - -You should call the `self._insert()` method passing `node.right` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index 84b23ecb7ff..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: Hatua ya 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. - - -# --hints-- - -You should return the current node outside the conditional blocks. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index e7b11614b9e..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: Hatua ya 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Inside the `search` method, delete `pass` and call the private helper method `_search` with the following arguments. You will define `_search` in the next steps. - -- `self.root`: This is the root of the binary search tree. The search starts from the root. -- `key`: This is the value that the user wants to find in the binary search tree. - -Internally, `search` delegates the actual search logic to the private `_search` method that performs the actual recursive search within the binary search tree. - -# --hints-- - -You should call the `_search` method within the `search` method. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -You should call the `_search` method passing `self.root` and `key` as the arguments. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index 99a3bdd83d1..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: Hatua ya 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Now, make the `search` method return the result of the `_search()` call. - -# --hints-- - -You should prepend the `return` statement to your `_search()` call. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index 12fc11880dd..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: Hatua ya 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Now, define the `_search` method with three parameters, namely `self`,`node` and `key`. - -# --hints-- - -You should declare a `_search` method. Note the leading underscore and remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Your `_search` method should take three parameters: `self`, `node`, and `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index fcc7b78be3f..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: Hatua ya 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Now you are going to define a base case for the recursive search. Write an `if` statement that checks two conditions: - -- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. -- If `node.key == key`: This means that the key has been found in the current node. - -Combine the two conditions with the `or` operator and return the current node inside the `if` block. - -# --hints-- - -You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -You should return `node` from the `if` block. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index 75c03870a22..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: Hatua ya 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Write another `if` statement that checks if the target key is less than the key of the current node. - -Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. - -# --hints-- - -You should write another `if` statement to check if `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -You should return `self._search(node.left, key)` from your new `if` block. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index 78ad19dbaf4..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: Hatua ya 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Now, it's time to work on the search functionality. - -Define a method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. - - -# --hints-- - -You should define a method named `search`. Remember the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -The `search` method should take two parameters: `self` and `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index ebbc5057d3b..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: Hatua ya 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. - -In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. - -After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. - -# --hints-- - -You should recursively call the `_search` method using `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -You should pass two arguments to the call of the `_search` method: `node.right` and `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -You should return the result of the `_search` method call. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index ad4508dadd6..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: Hatua ya 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -The next step is to work on the deletion of nodes. - -Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. - -`key` is the value that the user wants to delete from the binary search tree. - -# --hints-- - -You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 9f183b44324..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: Hatua ya 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Inside the `delete` method, delete `pass` and call the private helper method `_delete` with the root of the binary search tree (BST) and the key to delete as the arguments. - -# --hints-- - -Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index edf01813aa4..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: Hatua ya 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -The deletion operation might result in a new root (for example, if the node to be deleted is the current root). - -To handle this case, assign the result of the `_delete` call to `self.root`. - -# --hints-- - -You should assign the result of the `_delete()` call to `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index c03593220ad..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: Hatua ya 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. - -# --hints-- - -You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index 99831914356..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: Hatua ya 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. When the current node is `None`, the key to be deleted was not found. - -Therefore, return `node` from your `if` block. - -# --hints-- - -You should write an `if` statement that checks if the current `node` is `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -You should return `node` inside your `if` block. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index 075f1ef080e..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: Hatua ya 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -After your existing `if`, write another one that checks if the target key is less than the current node key. - -# --hints-- - -You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index 9a32738ea5d..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: Hatua ya 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. - -# --hints-- - -You should call the `_delete` method with `node.left` and the `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index 57ced85d835..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: Hatua ya 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Write an `elif` statement that checks if `key > node.key`. - -Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. - -# --hints-- - -You should write an `elif` statement that checks if `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -You should call the `_delete` method with `node.right` and `key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -You should assign the result of the `_delete()` call to `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index 49e1e59eecd..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: Hatua ya 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. - -For that, add an `else` clause to the conditional. - -# --hints-- - -You should add an `else` clause. Remember to use the `pass` keyword. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index bd0666af6e2..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: Hatua ya 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. - -When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. - -# --hints-- - -You should write an `if` statement that checks if `node.left` is `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -You should return the right child of the current node. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index c812d046f2e..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: Hatua ya 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. - -If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. - -# --hints-- - -You should create an `elif` statement that checks if the right child of the current node is `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -You should return the left child of the current node. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index ea5d08cf2dc..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: Hatua ya 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -If neither one of the previous conditions is met, it means the node has both left and right children. - -To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. - -Later on, you are going to define a helper method called `_min_value` that finds the smallest value in a given subtree. - -For now, add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. - -# --hints-- - -You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index 486fe935907..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: Hatua ya 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. - -This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. - -# --hints-- - -You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -You should assign the return value of the `_delete()` call to the right child of the current node. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index d135f9fb96b..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: Hatua ya 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Finally, after your `else` clause, return the current node. - -# --hints-- - -You should return the current node after the `else` clause. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index 0e309a6e053..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: Hatua ya 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -When the node you want to delete has two children, you need to choose the replacement node from the children. The in-order successor method chooses the smallest element from the right subtree and places that element in place of the deleted node. - -Define the `_min_value` method and give it two parameters: `self` and `node`. - -# --hints-- - -You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index d00bc78ce27..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: Hatua ya 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. - -To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. - -# --hints-- - -You should use the condition `node.left is not None` in the `while` loop. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index 04fe7c95333..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: Hatua ya 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. - -# --hints-- - -You should assign `node.left` to `node` inside your `while` loop. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index d50f6e7c403..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: Hatua ya 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. - -After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. - -With this, you are able to get the value that will replace the node after it is deleted. - -# --hints-- - -After the `while` loop, return `node.key` as the result of the function. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index eb6c9e9adfc..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: Hatua ya 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. - -In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. - -Create an `inorder_traversal` method that takes `self` as the only parameter. - -# --hints-- - -You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index 0422319744a..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: Hatua ya 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Inside the method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. - -# --hints-- - -You should initialize an empty list named `result` inside the method. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index 81c183b5b23..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: Hatua ya 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. - -This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. - -# --hints-- - -You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index d3d1683861f..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: Hatua ya 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Finally, return the sorted list of keys. - -# --hints-- - -You should return the `result` list from your `inorder_traversal` method. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index 35203df4088..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: Hatua ya 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Define the `_inorder_traversal` method and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. - -# --hints-- - -You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index 9d3eebf1ea4..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: Hatua ya 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. - -# --hints-- - -Your check condition should be `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -You should call `_inorder_traversal` on the `node.left` inside the `if` block. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index 3272136ad16..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: Hatua ya 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Still inside the `if` block, append the `key` of the current node to the `result` list. - -# --hints-- - -You should append `node.key` to the `result` list. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index c5c665f5ace..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: Hatua ya 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Now it's time to put everything into use. - -Create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. - -# --hints-- - -You should create an instance of the `BinarySearchTree` class. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -You should assign the new instance of `BinarySearchTree` to the variable `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index 55116cdc610..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: Hatua ya 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Below the `BinarySearchTree` instance, create a list named `nodes` with the following integer values: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -You should have a list named `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Your `node` variable should have the value `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index 64752bcd740..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: Hatua ya 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Write a `for` loop to iterate over the `nodes` list. Inside the `for` loop body, call the `insert` method of the `bst` object, passing the node at the current iteration to insert all values orderly into the binary search tree. - -# --hints-- - -You should have a `for node in nodes` loop. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -You should have `bst.insert(node)` inside the `for` loop. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index a86316d2b19..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: Hatua ya 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Finally, recursively call the `_inorder_traversal` method on the right child of the current node. - -This recursive call explores the entire right subtree in an in-order manner. - -# --hints-- - -You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 6211ad5dcf9..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: Hatua ya 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Below the loop, call the `print()` function and pass it the string `Inorder traversal:` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. - -# --hints-- - -You should call `print()` and pass the string `Inorder traversal:` and the `bst.inorder_traversal()` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index 3f038df6ed3..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: Hatua ya 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Below your `print()` call, add another `print()` call to test the search functionality. This time, pass the string `Search for 40:` as the first argument. For the second argument, call the `search` method of `bst` and pass `40` as the argument. - -# --hints-- - -You should call `print()` and pass the string `Search for 40:` and the `bst.search(40)` call as the arguments. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index 958cc49b775..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: Hatua ya 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -The result from the previous step is an object like this: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. This is default string representation when printing an instance of a class. - -To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. - -# --hints-- - -You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index 59f8df01f23..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: Hatua ya 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. - -# --hints-- - -You should return the string value of `self.key` from your `__str__` method. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index ee382873ad2..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: Hatua ya 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -As you can see, now you get a readable output in the console. - -After the `print()` calls, call the `delete` method of `bst` and delete `40` from the binary search tree. - -# --hints-- - -You should call the `delete` method of `bst` passing `40` as the argument. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index 188e76d9238..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: Hatua ya 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Corfirm that `40` has been deleted by printing the tree. After deleting `40`, call `print()` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -# --hints-- - -You should call `print` passing the string `Inorder traversal after deleting 40:` as the first argument and an `inorder_traversal()` call as the second argument. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index 101bda9a930..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: Hatua ya 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -As a last step, search for `40` again. It should be deleted. You can copy and paste the previous `print()` call. - -With this, you have finished the implementation of the binary search tree. Great work! - -# --hints-- - -You should have `print('Search for 40:', bst.search(40))` at the bottom of your code. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index c89bf530f0e..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: Arithmetic Formatter -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -Students in primary school often arrange arithmetic problems vertically to make them easier to solve. For example, "235 + 52" becomes: - -```py - 235 -+ 52 ------ -``` - -Finish the `arithmetic_arranger` function that receives a list of strings which are arithmetic problems, and returns the problems arranged vertically and side-by-side. The function should optionally take a second argument. When the second argument is set to `True`, the answers should be displayed. - -## Example - -Function Call: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -Output: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -Function Call: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -Output: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## Rules - -The function will return the correct conversion if the supplied problems are properly formatted, otherwise, it will **return** a **string** that describes an error that is meaningful to the user. - -- Situations that will return an error: - - If there are **too many problems** supplied to the function. The limit is **five**, anything more will return: `'Error: Too many problems.'` - - The appropriate operators the function will accept are **addition** and **subtraction**. Multiplication and division will return an error. Other operators not mentioned in this bullet point will not need to be tested. The error returned will be: `"Error: Operator must be '+' or '-'."` - - Each number (operand) should only contain digits. Otherwise, the function will return: `'Error: Numbers must only contain digits.'` - - Each operand (aka number on each side of the operator) has a max of four digits in width. Otherwise, the error string returned will be: `'Error: Numbers cannot be more than four digits.'` -- If the user supplied the correct format of problems, the conversion you return will follow these rules: - - There should be a single space between the operator and the longest of the two operands, the operator will be on the same line as the second operand, both operands will be in the same order as provided (the first will be the top one and the second will be the bottom). - - Numbers should be right-aligned. - - There should be four spaces between each problem. - - There should be dashes at the bottom of each problem. The dashes should run along the entire length of each problem individually. (The example above shows what this should look like.) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` should return `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` should return `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` should return `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` should return `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` should return `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` should return `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` should return `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` should return `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index a66e608eaff..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: Budget App -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Complete the `Category` class. It should be able to instantiate objects based on different budget categories like *food*, *clothing*, and *entertainment*. When objects are created, they are passed in the name of the category. The class should have an instance variable called `ledger` that is a list. The class should also contain the following methods: - -- A `deposit` method that accepts an amount and description. If no description is given, it should default to an empty string. The method should append an object to the ledger list in the form of `{"amount": amount, "description": description}`. -- A `withdraw` method that is similar to the `deposit` method, but the amount passed in should be stored in the ledger as a negative number. If there are not enough funds, nothing should be added to the ledger. This method should return `True` if the withdrawal took place, and `False` otherwise. -- A `get_balance` method that returns the current balance of the budget category based on the deposits and withdrawals that have occurred. -- A `transfer` method that accepts an amount and another budget category as arguments. The method should add a withdrawal with the amount and the description "Transfer to [Destination Budget Category]". The method should then add a deposit to the other budget category with the amount and the description "Transfer from [Source Budget Category]". If there are not enough funds, nothing should be added to either ledgers. This method should return `True` if the transfer took place, and `False` otherwise. -- A `check_funds` method that accepts an amount as an argument. It returns `False` if the amount is greater than the balance of the budget category and returns `True` otherwise. This method should be used by both the `withdraw` method and `transfer` method. - -When the budget object is printed it should display: - -- A title line of 30 characters where the name of the category is centered in a line of `*` characters. -- A list of the items in the ledger. Each line should show the description and amount. The first 23 characters of the description should be displayed, then the amount. The amount should be right aligned, contain two decimal places, and display a maximum of 7 characters. -- A line displaying the category total. - -Here is an example usage: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -And here is an example of the output: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -Besides the `Category` class, create a function (outside of the class) called `create_spend_chart` that takes a list of categories as an argument. It should return a string that is a bar chart. - -The chart should show the percentage spent in each category passed in to the function. The percentage spent should be calculated only with withdrawals and not with deposits. Down the left side of the chart should be labels 0 - 100. The "bars" in the bar chart should be made out of the "o" character. The height of each bar should be rounded down to the nearest 10. The horizontal line below the bars should go two spaces past the final bar. Each category name should be written vertically below the bar. There should be a title at the top that says "Percentage spent by category". - -This function will be tested with up to four categories. - -Look at the example output below very closely and make sure the spacing of the output matches the example exactly. - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -The `deposit` method should create a specific object in the ledger instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `deposit` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should create a specific object in the `ledger` instance variable. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `withdraw` method with no description should create a blank description. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `True` if the withdrawal took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling the `transfer` method on a category object should create a specific ledger item in that category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `True` if the transfer took place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `transfer` on a category object should reduce the balance in the category object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should increase the balance of the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should create a specific ledger item in the category object passed as its argument. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `False` if the amount passed to the method is greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `check_funds` method should return `True` if the amount passed to the method is not greater than the category balance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `withdraw` method should return `False` if the withdrawal didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `transfer` method should return `False` if the transfer didn't take place. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Printing a `Category` instance should give a different string representation of the object. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` should print a different chart representation. Check that all spacing is exact. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 3eecb64613e..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: Polygon Area Calculator -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -In this project you will use object oriented programming to create a `Rectangle` class and a `Square` class. The `Square` class should be a subclass of `Rectangle`, and inherit its methods and attributes. - -## Rectangle class - -When a Rectangle object is created, it should be initialized with `width` and `height` attributes. The class should also contain the following methods: - -- `set_width` -- `set_height` -- `get_area`: Returns area (`width * height`) -- `get_perimeter`: Returns perimeter (`2 * width + 2 * height`) -- `get_diagonal`: Returns diagonal (`(width ** 2 + height ** 2) ** .5`) -- `get_picture`: Returns a string that represents the shape using lines of "\*". The number of lines should be equal to the height and the number of "\*" in each line should be equal to the width. There should be a new line (`\n`) at the end of each line. If the width or height is larger than 50, this should return the string: "Too big for picture.". -- `get_amount_inside`: Takes another shape (square or rectangle) as an argument. Returns the number of times the passed in shape could fit inside the shape (with no rotations). For instance, a rectangle with a width of 4 and a height of 8 could fit in two squares with sides of 4. - -Additionally, if an instance of a `Rectangle` is represented as a string, it should look like: `Rectangle(width=5, height=10)` - -## Square class - -The `Square` class should be a subclass of `Rectangle`. When a `Square` object is created, a single side length is passed in. The `__init__` method should store the side length in both the `width` and `height` attributes from the `Rectangle` class. - -The `Square` class should be able to access the `Rectangle` class methods but should also contain a `set_side` method. If an instance of a `Square` is represented as a string, it should look like: `Square(side=9)` - -Additionally, the `set_width` and `set_height` methods on the `Square` class should set both the width and height. - -## Usage example - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -That code should return: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -The `Square` class should be a subclass of the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `Square` class should be a distinct class from the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -A square object should be an instance of the `Square` class and the `Rectangle` class. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Rectangle(3, 6)` should be `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The string representation of `Square(5)` should be `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` should return `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` should return `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` should return `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` should return `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` should return `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Rectangle` class should have a different string representation after setting new values. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -An instance of the `Square` class should have a different string representation after setting new values by using `.set_width()` or `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Rectangle` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return a different string representation of a `Square` instance. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -The `.get_picture()` method should return the string `Too big for picture.` if the `width` or `height` attributes are larger than `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` should return `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` should return `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` should return `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index 7da3abff565..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: Probability Calculator -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -Suppose there is a hat containing 5 blue balls, 4 red balls, and 2 green balls. What is the probability that a random draw of 4 balls will contain at least 1 red ball and 2 green balls? While it would be possible to calculate the probability using advanced mathematics, an easier way is to write a program to perform a large number of experiments to estimate an approximate probability. - -For this project, you will write a program to determine the approximate probability of drawing certain balls randomly from a hat. - -First, create a `Hat` class in `main.py`. The class should take a variable number of arguments that specify the number of balls of each color that are in the hat. For example, a class object could be created in any of these ways: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -A hat will always be created with at least one ball. The arguments passed into the hat object upon creation should be converted to a `contents` instance variable. `contents` should be a list of strings containing one item for each ball in the hat. Each item in the list should be a color name representing a single ball of that color. For example, if your hat is `{"red": 2, "blue": 1}`, `contents` should be `["red", "red", "blue"]`. - -The `Hat` class should have a `draw` method that accepts an argument indicating the number of balls to draw from the hat. This method should remove balls at random from `contents` and return those balls as a list of strings. The balls should not go back into the hat during the draw, similar to an urn experiment without replacement. If the number of balls to draw exceeds the available quantity, return all the balls. - -Next, create an `experiment` function in `main.py` (not inside the `Hat` class). This function should accept the following arguments: - -- `hat`: A hat object containing balls that should be copied inside the function. -- `expected_balls`: An object indicating the exact group of balls to attempt to draw from the hat for the experiment. For example, to determine the probability of drawing 2 blue balls and 1 red ball from the hat, set `expected_balls` to `{"blue":2, "red":1}`. -- `num_balls_drawn`: The number of balls to draw out of the hat in each experiment. -- `num_experiments`: The number of experiments to perform. (The more experiments performed, the more accurate the approximate probability will be.) - -The `experiment` function should return a probability. - -For example, if you want to determine the probability of getting at least two red balls and one green ball when you draw five balls from a hat containing six black, four red, and three green. To do this, you will perform `N` experiments, count how many times `M` you get at least two red balls and one green ball, and estimate the probability as `M/N`. Each experiment consists of starting with a hat containing the specified balls, drawing several balls, and checking if you got the balls you were attempting to draw. - -Here is how you would call the `experiment` function based on the example above with 2000 experiments: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -The output would be something like this: - -```bash -0.356 -``` - -Since this is based on random draws, the probability will be slightly different each time the code is run. - -_Hint: Consider using the modules that are already imported at the top. Do not initialize random seed within the file._ - - -# --hints-- - -Creation of `hat` object should add correct contents. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method in `hat` class should reduce number of items in contents. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `draw` method should behave correctly when the number of balls to extract is bigger than the number of balls in the hat. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -The `experiment` method should return a different probability. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index 6c6e1727299..00000000000 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: Time Calculator -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -Write a function named `add_time` that takes in two required parameters and one optional parameter: - -- a start time in the 12-hour clock format (ending in AM or PM) -- a duration time that indicates the number of hours and minutes -- (optional) a starting day of the week, case insensitive - -The function should add the duration time to the start time and return the result. - -If the result will be the next day, it should show `(next day)` after the time. If the result will be more than one day later, it should show `(n days later)` after the time, where "n" is the number of days later. - -If the function is given the optional starting day of the week parameter, then the output should display the day of the week of the result. The day of the week in the output should appear after the time and before the number of days later. - -Below are some examples of different cases the function should handle. Pay close attention to the spacing and punctuation of the results. - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -Do not import any Python libraries. Assume that the start times are valid times. The minutes in the duration time will be a whole number less than 60, but the hour can be any whole number. - -# --hints-- -Calling `add_time('3:30 PM', '2:12')` should return `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:55 AM', '3:12')` should return `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected time to end with `'(next day)'` when it is the next day. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected period to change from `AM` to `PM` at `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00')` should return `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05')` should return `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02')` should return `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Expected adding `0:00` to return the initial time. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('3:30 PM', '2:12', 'Monday')`should return `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Calling `add_time('2:59 AM', '24:00', 'saturDay')` should return `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('11:59 PM', '24:05', 'Wednesday')` should return `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Calling `add_time('8:16 PM', '466:02', 'tuesday')`should return `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index 52ea78a9b16..e9c8f26ea8b 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -In this project, you will learn the basics of CSS(Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. Kama ulivyojifunza katika hatua chache zilizopita za Programu ya Cat Photo, kuna muundo msingi unaohitajika ili kuanza kuunda ukurasa wako wa wavuti. Every HTML document should have a `DOCTYPE` declaration and `html` element. The `DOCTYPE` tells the browser which version of HTML the document is in. And the `html` element represents the root element which contains all other elements. diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md index ae7118ac1f8..5842be3bc1d 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md @@ -15,7 +15,7 @@ Huu hapa ni mfano wa kipengele cha `img` chenye sifa ya `src` inayoelekeza kweny ``` -Ndani ya kipengele cha `img` kilichopo, ongeza sifa ya `src` na URL hii: +Inside the existing `img` element, add a `src` attribute with this URL: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` @@ -27,7 +27,7 @@ Msimbo wako unapaswa kuwa na kipengele cha `img`. Huenda umeondoa kipengele cha assert(document.querySelector('img')); ``` -Kipengele chako cha `img` kinafaa kuwa na sifa ya `src`. Aidha umesahau sifa au umeandika makosa. Hakikisha kuna nafasi kati ya jina la kipengele na jina la sifa. +Your `img` element should have a `src` attribute. Aidha umesahau sifa au umeandika makosa. Hakikisha kuna nafasi kati ya jina la kipengele na jina la sifa. ```js assert(document.querySelector('img').src); diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md index cef077d5f5f..7d1f012c5e3 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md @@ -21,7 +21,7 @@ Geuza picha kuwa kiungo kwa kuizunguka na tagi za vipengele zinazofaa. Tumia `ht # --hints-- -Unapaswa kuwa na kipengele cha `img` chenye thamani ya `src` ya `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. Huenda umeifuta kwa bahati mbaya. +You should have an `img` element with a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. Huenda umeifuta kwa bahati mbaya. ```js assert( diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md index dd5a9c26abe..8a2b1055d81 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -Baada ya orodha isiyopangwa, ongeza picha mpya yenye thamani ya sifa ya `src` iliyowekwa kuwa: +After the unordered list, add a new image with a `src` attribute value set to: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` @@ -40,13 +40,13 @@ assert( ); ``` -Picha mpya haina sifa ya `src`. Hakikisha kuwa kuna nafasi baada ya jina la tagi inayofungua na/au kuna nafasi kabla ya majina yote ya sifa. +The new image does not have a `src` attribute. Hakikisha kuwa kuna nafasi baada ya jina la tagi inayofungua na/au kuna nafasi kabla ya majina yote ya sifa. ```js assert($('section')[1].lastElementChild.hasAttribute('src')); ``` -Picha mpya inapaswa kuwa na thamani ya `src` ya `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Hakikisha kuwa thamani ya `src` imezungukwa na alama za nukuu. +The new image should have a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Hakikisha kuwa thamani ya `src` imezungukwa na alama za nukuu. ```js assert( diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index 8f2ec948fb2..5274f80ee04 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -38,7 +38,7 @@ assert( ); ``` -Picha ya tatu inapaswa kuwa na sifa ya `src` iliyowekwa kuwa `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. +The third image should have a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index aa5e24385db..5331198bde1 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -Ndani ya kipengele chako cha `.cat-left-ear`, unda kipengele kingine cha `div` chenye darasa la `cat-left-inner-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -Hupaswi kubadilisha kipengele kilichopo cha `div` kilicho na class ya `cat-left-ear`. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -Unapaswa kuwa na kipengele cha `div` ndani ya kipengele chako cha `.cat-left-ear`. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -Kipengele chako cha `div` kinapaswa kuwa na darasa la `cat-left-inner-ear`. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index d89e30d5c21..00000000000 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: Hatua ya 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Ndani ya kipengele chako cha `.cat-right-ear`, unda kipengele kingine cha `div` chenye darasa la `cat-right-inner-ear`. - -# --hints-- - -Hupaswi kubadilisha kipengele kilichopo cha `div` kilicho na darasa la `cat-right-ear`. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -Unapaswa kuwa na kipengele cha `div` ndani ya kipengele chako cha `.cat-right-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -Kipengele chako cha `div` kinapaswa kuwa na darasa la `cat-right-inner-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index 86b29e33f9f..2f81cc89d7d 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: Hatua ya 23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index 3925568c524..88ad3c15149 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: Hatua ya 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index a21401df12a..768a48ba628 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: Hatua ya 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index 7f0e417dba6..a950e13f3ee 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: Hatua ya 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index 8d0f119e60a..e9c230586f0 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: Hatua ya 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index 3ee2cbb8f57..ea79f3209c2 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: Hatua ya 28 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index 0ed73bcd2cf..2ae0253d8ca 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: Hatua ya 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ Kama ulivyofanya kwa sikio la kushoto, zungusha sikio la kulia kwa digrii 45. # --hints-- -Unapaswa kuweka sifa ya `transform` ya kipengele cha `.right-ear` kuwa `rotate(45deg)`. Usisahau kuongeza nusu koloni. +You should set the `transform` property of your `.cat-right-ear` element to `rotate(45deg)`. Usisahau kuongeza nusu koloni. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index ce13cdde67b..7f59872aa16 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: Hatua ya 30 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index 38c70231c42..afde924490e 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: Hatua ya 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ Masikio yanapaswa kuwekwa kila wakati juu ya sehemu ya kichwa inayoingiliana. Un `z-index` ni sifa unayoweza kutumia kufafanua mpangilio wa vipengele vya HTML vinavyopishana. Kipengele chochote kilicho na `z-index` ya juu zaidi kitawekwa juu ya kipengele chenye `z-index` ya chini. -Ili kuona `z-index` ikitenda, weka sifa ya `z-index` ya sikio la kushoto kuwa `-1`. +To see `z-index` in action, set the `z-index` property of the left ear to `-1`. # --hints-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index c52a89f04aa..81dd7f76788 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: Hatua ya 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index 7fe6923cabb..929368df2a8 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,13 +1,13 @@ --- id: 646cfde6ac612e5d60391f50 -title: Hatua ya 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- -Weka sifa ya `z-index` ya sikio la kulia hadi `1` ili ibaki juu ya kichwa kila wakati. +Set the `z-index` property of the right ear to `1` so it always stays over the head. # --hints-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index 217326c7ebe..a67300abc3c 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: Hatua ya 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index 58002860979..06b79b4387e 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: Hatua ya 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index e1787965ae7..6bc141465bd 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: Hatua ya 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index 3672aad826d..844a7d47a35 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: Hatua ya 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index c38ba30e3a4..564860d6ce8 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: Hatua ya 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index eea510a677a..8e8c06e0b62 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: Hatua ya 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index d13378ef701..037161087f9 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: Hatua ya 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- Sasa utaanza kufanyia kazi macho ya paka. Kama masikio, macho yatakuwa na macho ya ndani. -Unda kipengele cha `div` ukitumia darasa la `cat-eyes`. Ndani ya kipengele cha `cat-eyes`, unda vipengele viwili vya `div` ukitumia darasa la `cat-left-eye` na `cat-right-eye` kwa mtiririko huo. +Unda kipengele cha `div` ukitumia darasa la `cat-eyes`. Inside the `.cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. # --hints-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index ea0b99fe2b1..f63023543b4 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -1,13 +1,13 @@ --- id: 646ddd3f9f97a0667b964bdb -title: Hatua ya 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- -Ndani ya kipengele cha `.cat-left-eye`, unda kipengele kingine cha `div` ukitumia darasa la `cat-left-inner-eye`. +Create two `div` elements, one with the class `cat-left-inner-eye` inside the `.cat-left-eye` element and another with the class `cat-right-inner-eye` inside the `.cat-right-eye` element. # --hints-- @@ -17,18 +17,36 @@ Hupaswi kubadilisha kipengele cha `div` kilichopo na darasa la `cat-left-eye`. assert(document.querySelectorAll('div.cat-left-eye').length === 1); ``` -Unapaswa kuwa na kipengele cha `div` ndani ya kipengele chako cha `.cat-left-eye`. +You should not change the existing `div` element with the class `.cat-right-eye`. + +```js +assert(document.querySelectorAll('div.cat-right-eye').length === 1); +``` + +You should have one `div` element inside your `.cat-left-eye` element. ```js assert(document.querySelectorAll('.cat-left-eye div').length === 1); ``` -Kipengele chako cha `div` kinapaswa kuwa na darasa la `cat-left-inner-eye`. +You should have one `div` element inside your `.cat-right-eye` element. + +```js +assert(document.querySelectorAll('.cat-right-eye div').length === 1); +``` + +The new `div` element inside `.cat-left-eye` should have the class `cat-left-inner-eye`. ```js assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('cat-left-inner-eye')); ``` +The new `div` element inside `.cat-right-eye` should have the class `cat-right-inner-eye`. + +```js +assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); +``` + # --seed-- ## --seed-contents-- @@ -57,9 +75,11 @@ assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index 4fa3c9717bf..00000000000 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: Hatua ya 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -Ndani ya kipengele cha `.cat-right-eye`, unda kipengele kingine cha `div` ukitumia darasa la `cat-right-inner-eye`. - -# --hints-- - -Hupaswi kubadilisha kipengele cha `div` kilicho na darasa la `cat-left-eye`. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -Unapaswa kuwa na kipengele cha `div` ndani ya kipengele chako cha `.cat-right-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -Kipengele chako cha `div` kinapaswa kuwa na darasa la `cat-right-inner-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index 268d798ffda..fc2d1094983 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: Hatua ya 43 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index 1b81c6be4fd..313018d50f9 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: Hatua ya 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Sogeza jicho la kushoto kwenye nafasi yenye sifa ya `position` ya `absolute` `top` ya `54px`, na `left` ya `39px`. +Move the left eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `39px`. # --hints-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index 107d7be7282..db995f5753c 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: Hatua ya 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index 63754dad872..8cf79b9e794 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: Hatua ya 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index abc82a958ec..d9bba59d301 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: Hatua ya 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index 1d0ab3e8b02..3e746005882 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: Hatua ya 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index 8b0452c3690..83e3e1ada9d 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: Hatua ya 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index 7c43c5e58d5..afc7d19aa92 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: Hatua ya 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index f7ec0b71f34..d548d84060e 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: Hatua ya 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index 9e0deb979fe..4b14edca374 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -1,8 +1,8 @@ --- id: 646dec359bef3b7811fba5a6 -title: Hatua ya 52 +title: Step 50 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index 217f7fe8db8..34cf04b71db 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: Hatua ya 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index f5757496ed1..1cdd4a62f60 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: Hatua ya 54 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index 0f521df57de..c9736162233 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: Hatua ya 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index 6984086d496..d872969dbe1 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: Hatua ya 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index 48c1f96faa0..832164dfed5 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: Hatua ya 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -13,13 +13,13 @@ Unda kipengele cha `div` ukitumia darasa la `cat-mouth`. # --hints-- -Unapaswa kuunda kipengele cha `div`. +You should create a `div` element. ```js assert(document.querySelectorAll('div').length === 13) ``` -Kipengele chako cha `div` kinapaswa kuwa na darasa la `cat-mouth` +Your `div` element should have the class `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index b7a942446c2..f864cbc22ea 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: Hatua ya 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index d9dfc88721d..6bb99bcc164 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: Hatua ya 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ Kwa kutumia kichaguzi cha darasa, kipe kipengele chako cha `.cat-mouth-line-left # --hints-- -Unapaswa kuwa na kichaguzi cha `cat-mouth-line-left`. +You should have a `.cat-mouth-line-left` selector. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index 58d63c74d9f..e990b9239fe 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: Hatua ya 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- @@ -11,7 +11,7 @@ Kwa kutumia kipengele cha `transform`, zungusha mstari wa mdomo wa kushoto kwa d # --hints-- -Sifa yako ya `.cat-mouth-line-left` inapaswa kuwa na `transform` iliyowekwa `rotate(170deg)`. +Your `.cat-mouth-line-left` selector should have a `transform` property set to `rotate(170deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')?.transform === 'rotate(170deg)') diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index 0fda8e20421..2ee5a3917b0 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: Hatua ya 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index d3a2456967f..e6921fb6aac 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: Hatua ya 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ Zungusha mstari wa mdomo wa kulia kwa digrii `165`. # --hints-- -Sifa yako ya `.cat-mouth-line-left` inapaswa kuwa na sifa ya `transform` iliyowekwa kuwa `rotate(165deg)`. +Your `.cat-mouth-line-right` selector should have a `transform` property set to `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index c540493c8f6..b2151e3ee68 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: Hatua ya 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index 86f4118ecfa..9745d8b7881 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -1,8 +1,8 @@ --- id: 646f0ef13604420a8744f7d4 -title: Hatua ya 66 +title: Step 64 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index 14894587113..1f6e9aa26d9 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: Hatua ya 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index 7013677c19c..5f75e71bf05 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: Hatua ya 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index 81c6d122a4d..bf1eb618362 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: Hatua ya 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index d9de2a01c34..5110c649499 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: Hatua ya 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index e2618aa2a87..8f1ac7c3116 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: Hatua ya 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index ba3ef76af23..a35c5a5c348 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: Hatua ya 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index 5e90d0b74d1..6d7b44068b5 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: Hatua ya 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index 5a3363caea5..e299f001da1 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: Hatua ya 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index 2fdaf0612ca..2aa77a5a630 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: Hatua ya 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index 90e2b792454..b5fcbf5a2da 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: Hatua ya 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index af9ebb452c5..7e15440fce2 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: Hatua ya 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index 167e0014fb1..c7959e813af 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: Hatua ya 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Tumia kichaguzi cha darasa kulenga kipengele cha `cat-whisker-right-middle`, kisha usogeze mashavu ya kati kulia kwenye nafasi yenye `position` ya `absolute`, `top` ya `127px`, na `left` ya `109px`. +Use a class selector to target the `.cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. # --hints-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index a3c64b91f5e..0d786690359 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: Hatua ya 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index 80d2126e40f..170199658bc 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: Hatua ya 81 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index 93b11b7edd5..bd206666fc8 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: Hatua ya 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index f6b7f112c8d..b3cc3f6ac03 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 Unapaswa sasa kuweka kichwa cha paka katikati. -Kipe kipengele cha `.cat-head` sifa ya nafasi iliyowekwa `absolute`. Weka thamani ya `0` kwa sifa za `right`, `left`, `top`, `bottom`, kisha weka sifa `margin` pande zote kuwa `auto`. Hiyo ni njia moja ya kuweka kipengee katikati kiwima na mlalo kwa kutumia uwekaji wa CSS. +Give the `.cat-head` element a `position` property set to `absolute`. Weka thamani ya `0` kwa sifa za `right`, `left`, `top`, `bottom`, kisha weka sifa `margin` pande zote kuwa `auto`. Hiyo ni njia moja ya kuweka kipengee katikati kiwima na mlalo kwa kutumia uwekaji wa CSS. # --hints-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index c0a8deb2854..a9850acf867 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: Hatua ya 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index b82f46b72e4..79544bc7286 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: Hatua ya 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index 78c5f3b442c..e1f179f64d1 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: Hatua ya 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 347d86b778c..e81c63a1711 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index 8fb39e6b507..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: Hatua ya 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Finally, return the value of `median`. - -Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. However, it is important to remember that shorter code is not always better code. In this case, reducing the lines of code would make the code harder to read and understand, impacting future maintainability. - -# --hints-- - -Your `getMedian` function should return the value of `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index 2481359c470..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: Hatua ya 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -You should have a constant called `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -You should assign `new Date()` to your `currentTime` variable. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index c2c68119e48..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: Hatua ya 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -You should have a constant called `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -You should assign `new Date(time)` to your `lastPost` variable. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 51a81c5b28c..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: Hatua ya 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -You should have a constant called `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -You should assign the difference between `currentTime` and `lastPost` to your `timeDifference` variable. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index 82c75dfa65a..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: Hatua ya 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -You should have a constant named `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -You should assign `Math.floor(timeDifference / msPerMinute)` to your `minutesAgo` variable. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index 0b6593d9f46..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: Hatua ya 28 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should have a constant named `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -You should assign `Math.floor(minutesAgo / 60)` to your `hoursAgo` variable. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index 48b20371b1c..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: Hatua ya 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -You should assign `Math.floor(hoursAgo / 24)` to your `daysAgo` variable. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index 0b583999986..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: Hatua ya 30 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index 1ff452ec145..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: Hatua ya 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -You should return `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index df306b6065c..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: Hatua ya 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -You should return `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index af0ec9c7662..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: Hatua ya 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -You should have a constant called `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Your should assign `Math.floor(views / 1000)` to your `thousands` variable. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index 992fc1ef7a8..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: Hatua ya 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -You should return `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index 6b79047f4fb..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: Hatua ya 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -You should return the `views` variable. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..1dd73ecc04b --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index b05e6b5ed0d..3360c93b50d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index 31b5aab1949..0eac43fb139 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index 872f15c114d..17f15765aa0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index da746753d28..2607be95cff 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index fcacc62099d..f191e66cf0f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md index 00ed710db32..c9a2b3d8323 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index 1f0c2db1e45..2da5b95417e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index d08f231f391..7e6e32a5fd4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index c9222ca37a2..fb235c822c5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index fe761e7f5dd..9a45437b3b7 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index 4d2f4e4141a..147905bc8f0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index 9edacf0701a..7e575e0125c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index cd71ce38d39..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: Hatua ya 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -Variables can be assigned a value. When you do this while you declare it, this is called initialization. For example: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Initialize your `xp` variable to have a value of `0`, a number. - -# --hints-- - -`xp` should have a value of `0`. - -```js -assert.equal(xp, 0); -``` - -You should initialize the `xp` variable to `0`. Don't forget the semi-colon at the end of the line. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index 7ccd56b9984..8c73975833f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Create another variable called `currentWeapon` and set it to `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -You should use `let` to declare a variable called `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` You should use camelCase to name your variable. ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -Your `currentWeapon` variable should be set to `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` You should initialize your variable to `0`. ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index 6b71718528e..c09d8bbd79c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index 2a4b553972f..34d9459ba8c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index b456b7f9a55..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: Hatua ya 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -The variables you have assigned have all had values that are numbers. JavaScript has multiple different data types. The next one you will use is the string. Strings are used to store things like words or text. Strings are surrounded with double quotes, single quotes, or backticks. Here is an example of declaring a variable with a string: - -```js -let developer = "Naomi"; -``` - -Assign the `inventory` variable to have the value of `stick`. - -# --hints-- - -You should set `inventory` to the string `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -You should initialize your `inventory` variable with the string `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index 48a8d9b717f..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: Hatua ya 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -The player's inventory in your game will be able to hold multiple items. You will need to use a data type that can do this. An array can be used to hold multiple values. For example: - -```js -let order = ["first", "second", "third"]; -``` - -This is an array which holds three values. Notice how the values are separated by commas. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -Your `inventory` variable should be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should have three values. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -Your `inventory` variable should have the values in the correct order. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index 0063b272044..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: Hatua ya 14 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -Your `inventory` variable should still be an array. - -```js -assert.isArray(inventory); -``` - -Your `inventory` variable should only have one value. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index d75e6619d33..e13e235a23c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index 63b8f3a8475..9caf7e829c1 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index 491cbbb3fe3..01d81e0c3b4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index 88bcd739238..4e05e0cab79 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index b1c4d1d1b36..92af71dab77 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 32cd3d6a758..1a0976099be 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index 0d1dfed3a01..3797e2709d6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 902edafc6b3..8236d006fdf 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 2638ce9ae52..ecd7b41e551 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index 46025e90ee2..4899b136971 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index a1779a579fa..af1ce60c93d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 7c76591109f..1e0c4282c4f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index 2be712694cf..a5fcd2f1dec 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index cc90d211dd4..6040d1028d3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index b0dfcbb9d7b..2998105596f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index d1a2df0ea4b..1210d1b0e3b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 5b43ac85352..752b1671817 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index f31a581cc2d..1086d92ce39 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index 353d61ea5b0..9fa40be79c3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 1841ae43c76..25e82fda63c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 1a4ddfa7458..14eefc67a6e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index 45d4085b487..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: Hatua ya 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -Object properties are written as `key: value` pairs, where `key` is the name of the property (or the key), and `value` is the value that property holds. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"town square"`. - -# --hints-- - -Your first value of `locations` should be an object. - -```js -assert.isObject(locations[0]); -``` - -Your first value of `locations` should have a `name` property. - -```js -assert.isDefined(locations[0].name); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index 12891538908..6474b8db7c7 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index c318e051bc8..4ed6343fd96 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 4337bbb7817..442032d8950 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index 84e25aa3479..75a9b22ce50 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index b3d8e3a6ced..cb2e7bdaeaa 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index 76419553abe..05f08bb6a19 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 6a2fd6dd18e..60ab0a2b874 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index ee22bd5db18..44fd2f7eb9c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index 42fa1b7156b..1dc5232b378 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 6df6d825b45..b54ee029164 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index 64dbdadcc64..5dbb6907d42 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index 69288ecb4e1..88610822650 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index 0bc2ea4f339..9eecaaee678 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index 7e8b7d6f71e..1848eab1431 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index cb1dab4a818..dda03f4aa4a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 87f4686de53..1b71205f170 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index b0c4f008224..eb77b88b3b0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 7f9be4c607c..10e1f6ce3fa 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 43844bfd6fa..2ea876ddf24 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index 407ef30337e..addf8147369 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index b32a4624174..83b34def3df 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index 03a101706ac..646a274c94a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index 7d9aefae7ba..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: Hatua ya 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -The `condition` string is just a placeholder. Change the `if` statement condition to check if `gold` is greater than or equal to `10`. - -Here is an `if` statement that checks if `num` is greater than or equal to `5`: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -Your `if` statement should check if `gold` is greater than or equal to `10`. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -Your `buyHealth` function should update `health` and `gold` if `gold` is greater than or equal to `10`. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -Your `buyHealth` function should not update `health` and `gold` if `gold` is less than `10`. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index 23684174766..c2df7ba8924 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index a5108647216..e35ee493c6b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index df552626f1b..adad93a5c6b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index 9a18056f74e..470f9065bec 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index 57cf505e52b..bb8a07042e3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index a210376fd75..b3592e5aa14 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index 641048de2e1..0f65c77df04 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -The value of the `currentWeapon` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -In the `buyWeapon` function, use compound assignment to add `1` to `currentWeapon` - the user is buying the next weapon in the `weapons` array. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -You should use compound assignment to add one to `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -Your `buyWeapon` function should increase `currentWeapon` by `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Your code should be in your `if` statement. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index a4c118f6f3d..1bd4b3f4533 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Change your `currentWeapon` assignment to use the increment operator. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -You should use the increment operator to increase `currentWeapon` by `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -You should not use compound assignment to increase `currentWeapon` by `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index 0288af76ebf..da2f57a2940 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 0509fd0209f..bd061db00af 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 0ce8646d7ba..d72680595d4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeapon` within the brackets. +Use bracket notation to access an object within the `weapons` array and assign it to your `newWeapon` variable. Place the variable `currentWeaponIndex` within the brackets. When you use a variable in bracket notation, you are accessing the property or index by the *value* of that variable. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index eb78febdb46..6f6157eec95 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` is an object. Use dot notation to get the `name` property of that object. +`weapons[currentWeaponIndex]` is an object. Use dot notation to get the `name` property of that object. # --hints-- -You should update `newWeapon` to have the value of `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 065a312d032..b4717bed9e8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 33fcfc81e1d..1d2fa00beec 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ Your `buyWeapon` function should add the value of `newWeapon` to the `inventory` ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index c2c10d03e5b..5443169577e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index 049fa2470e9..baf137a8530 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index 0843051f507..47211f51cf4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index 35bd5b0666b..cd43584c827 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeapon` is less than `3` - the index of the last weapon. +Once a player has the best weapon, they cannot buy another one. Wrap all of the code in your `buyWeapon` function inside another `if` statement. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -You should have a new `if` statement that checks if `currentWeapon` is less than `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` Your existing `if` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); Your existing `else` statement should be within your new `if` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index 71fd3d9c5b4..663cb53c8c4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Arrays have a `length` property that returns the number of items in the array. You may want to add new values to the `weapons` array in the future. -Change your `if` condition to check if `currentWeapon` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. An example of checking the length of an array `myArray` would look like `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ You should use the `length` property on the `weapons` array. assert.match(buyWeapon.toString(), /weapons\.length/); ``` -Your `if` statement should check if `currentWeapon` is less than `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index 00bcc81def5..4632b674d6f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -The `currentWeapon` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. The index of the last element in an array is one less than the length of the array. Change the `if` condition to check `weapons.length - 1`, instead of `weapons.length`. @@ -23,10 +23,10 @@ You should update the condition to subtract `1` from `weapons.length`. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -Your condition should check if `currentWeapon` is less than `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 88e988b4342..cc1c4b8273d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 7beafd0a495..041472b56b8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index 194d6d2130b..cc73efed14f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index a23450f5ed4..763f646b62b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 0d176b81c7f..975c6446f0f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index 0032e30ee54..93b5c9babb8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Notice that you already have a `currentWeapon` variable elsewhere in your code. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index 4e7f9117a26..59e803ef18d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index 0ce7ffb6314..d53accb8e69 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Use the concatenation operator to do this on the same line. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` Your `text.innerText` should update to the proper string. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index 44e4ab1926b..65721659631 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index f5bbad9e0d1..682a5fe76bd 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index b92571d3d30..abd86e35b27 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 7a5458fd606..1c6cd769027 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index a1daed21eef..3b555e0f9f9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index 331e94c38eb..39a1ab9c522 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 2c8be2f2d00..9d1aebd3d08 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index c26c417f4d0..2312c7efe25 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 507f9e51e21..96029139026 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index eb32394270b..56b799d223d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index c9757db96ec..170b1d93b8d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 437ca16fc9b..2b27d636b1f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index d370d9899e7..c9db1c10266 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index c6f89860b85..bb8a96a906d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeapon].name`. +You should use the concatenation operator to add the current weapon to the string. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index c66f059b602..040babab4ec 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index d59c6a933e7..6225b405f50 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe Using these, you can generate a random number within a range. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ You should use the same `monsterHealth` line you already wrote. assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -You should add to the `weapons[currentWeapon].power` value. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` You should use `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? You should add the result of `Math.floor(Math.random() * xp) + 1` to the result of `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index d68134d2350..274040289a1 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index ffd5e28f3ee..079c222ff3d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index 68d9e247d4a..5ab59a1bf13 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 3be7b4a8355..d7ef1c1dac8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index d5af7299e44..ac255663e19 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index 81d4dd2883d..0aede6aa27a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index 110f82cbd5b..22817a6e62f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 35a05b443aa..be06a139e03 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 024b4959d65..5766abd424a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index 3bca3e5c383..f6b904e02c3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index c1f3457b7c5..405a97fa6e2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 3ad57b17036..5d78cc4d0b5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 641e365bf76..9286fc33eb0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index 5ff1b213382..22c13f88c2b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeapon` to `0`, and set `inventory` to an array with the string `stick`. +At the end of your code, create a `restart` function. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Also update the `innerText` properties of `goldText`, `healthText`, and `xpText` to their current values. @@ -39,10 +39,10 @@ Your `restart` function should set `gold` to `50`. assert.match(restart.toString(), /gold\s*=\s*50/); ``` -Your `restart` function should set `currentWeapon` to `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Your `restart` function should set `inventory` to an array with the string `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 3f0337d819c..a132b990d3c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index 4e2d63fa3e4..bf52667c43c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index 5bb111d0b29..e318c25ce60 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 737e5a1a247..41faa44d5ef 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 1beebfe0ab7..b9f78edb5c3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index e714aedc940..7b96177a6a6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index b4f1daf80a0..f945040ccab 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index 9ac019e464d..7194de8da02 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index 648a7562e7c..ab5905353b1 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 1b7a89f353f..632abe728dd 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index 4c7363d5341..7da1800af5e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ Move your `monsterHealth` assignment into your `if` block. # --hints-- -You should move your `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` into your `if` block. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index a1775d7543b..e6ce6f4616a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct You should add an `else` block after your `if (isMonsterHit())` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index 1b9384de685..89b70f7c1b3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 9219b8da936..3b985e1dbd3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 4bca7930754..fcb4a8b153e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index 308f53fd795..9e1a123a719 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 0aecde7e233..28d47dffdff 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Decrement the value of `currentWeapon` in your `if` statement, after you update the text. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ You should use the decrement operator. assert.match(attack.toString(), /--/); ``` -You should decrement `currentWeapon` in your `if` statement. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index fb88f652092..aa926a8b8d8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index 84e6671d449..0ab02c6d783 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index f2c2ae3c598..705c25660dd 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index 4123ece8378..c1d224bb2dc 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index 9cf97ef1f86..8e5ad353975 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index ae21c052d6e..7f603982c95 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index 2c5359f0283..9629947e6cb 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index a674632b49b..a8fa573a795 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index 1ef1456647a..af13af000e3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 1eb6aa4c1f1..ee1f17b327b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index 9da6c0e84f1..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -`for` loops are declared with three expressions separated by semicolons. `for (a; b; c)`, where `a` is the initialization expression, `b` is the condition, and `c` is the final expression. - -The initialization expression is executed only once, before the loop starts, and is often used to define and set up the loop variable. Think of it like declaring a counter to use in your loop. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -You should change your initialization in the `for` loop to be `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index 346adeb6fa0..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -The second statement in a `for` loop, the condition statement, is evaluated at the beginning of every loop iteration. The loop will continue as long as the condition evaluates to be true. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -You should update your condition statement to be `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index 1dd28e8ad74..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -The last statement in a `for` loop, the final expression, is executed at the end of each loop iteration. - -Since we changed the initialization statement to use `i` instead of `x`, change `x++` to `i++`. This will increment the initializer `i` by 1 after each loop. - -# --hints-- - -You should change your final expression to `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index 71875c1a0ea..6045c2ab02f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 5d2de454974..5c01ee608a2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index 659e9a1e4b1..51a72303ff2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index b0868a55bf0..3b46e0900dc 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 650fe59ddd1..d5cf53b8ad6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index ebf70ca3d06..4f1db2ae242 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index db3e2b0cc04..e584e963759 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index 4210e30d01c..727d1e77172 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index f0978d9f11e..e2a20f27ac0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index c38becdee8c..52cf362e9fa 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index 27be8c27ee8..3cb2f0de300 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index 0edc455a6e6..b58cd816ed2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index 4692284fc06..8d4f75cd26b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index 0d03129a37c..0c4380a285f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index 63a2d553b81..df3c5a64429 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -You should declare a `cleanInputString` variable. -```js -assert.isDefined(cleanInputString); -``` -Your `cleanInputString` variable should be a function. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index 36ef18d9953..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: Hatua ya 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -You need to split your `str` into individual characters. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -Your `cleanInputString` function should declare a `strArray` variable. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Your `strArray` variable should be assigned the value of `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index e40022f6f9e..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: Hatua ya 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Declare a `cleanStrArray` variable and assign it an empty array. You will use this to store your valid number characters. - -# --hints-- - -Your `cleanInputString` should declare a variable called `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Your `cleanStrArray` variable should be assigned an empty array. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index 57c9793383c..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: Hatua ya 21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Use a `for` loop to iterate through each character in your `strArray` array. - -# --hints-- - -Your `cleanInputString` function should have a `for` loop. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Your `for` loop should initialize a variable called `i` to `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Your `for` loop should have a condition that checks if `i` is less than the length of `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Your `for` loop should increment `i` by `1` each time it runs. Use the increment operator for this. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index eb21217a3b3..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: Hatua ya 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). If it is not, `push` it to the `cleanStrArray`. - -# --hints-- - -Your `for` loop should have an `if` statement. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Your `for` loop should use `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Your `for` loop should `push` `strArray[i]` to `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 4ecae222222..0f955c403d9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Start by creating a function called `isInvalidInput` – it should take a single # --hints-- -You should declare an `isInvalidInput` variable. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` should be a function. ```js diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index 5fe11ad76a0..9a7c21d3716 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Your next step is to allow users to add entries to the calorie counter. Declare # --hints-- -You should declare an `addEntry` variable. - -```js -assert.isDefined(addEntry); -``` - -Your `addEntry` variable should be a function. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index d90798583b0..ac72cff5f7a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; Variable naming follows specific rules: names can include letters, numbers, dollar signs, and underscores, but cannot contain spaces and must not begin with a number. -Declare a `character` variable in your code. +Use the `let` keyword to declare a variable called `character`. _Note_: It is common practice to end statements in JavaScript with a semicolon. `;` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index 81e394135da..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: Hatua ya 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index 0a14e71ca3a..00000000000 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: Hatua ya 15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -To check if the `Object.freeze()` method is working, you can try to assign a new value to one of the existing properties. - -Below the `Object.freeze(myFavoriteFootballTeam)`, assign the `USA` string to `myFavoriteFootballTeam.team`. Below that, add a `console.log` for `myFavoriteFootballTeam.team`. - -When you open up the console, you will see an `Uncaught TypeError` message. This error appears because the `Object.freeze()` method does not allow you to overwrite that value. - -# --hints-- - -You should assign the `USA` string to `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -You should add a `console.log` for `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index 6422de3c7f7..0524332ed58 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index 98e1885d91c..94fd09d3061 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 3c1074dab38..48fee2690e6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index eebdad0117f..2904b352aba 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index e99b7c89b65..0471fc98a38 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index 3d555b3a72d..a6d26c93745 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index 3a0d7025277..21c6bfdf8a9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index fbe4b304655..005bf8eda0a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index d151c6bf173..1ff92deadec 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index 987676a4364..9603b861d3e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index b086e57a474..72161e346f9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index 13d41dd884c..bfe466c79c2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index 2a77fbbfa62..31fdcfc7e94 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index 6545b7100d2..b686580bad5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index decca711d6f..ba750f85bce 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index 9974aa5432b..9cb8dbe15a8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index 06c66e4bdd6..51f2c7b9bad 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index 810a56c7dd2..6bbd3af71cb 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index 94747c7fec7..26001c0a2b1 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index 11cf8d7461a..51a53d55a25 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index 1c30a8e101a..f7ce1e6301e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index 5d145ed23cc..7aadd405202 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index 8514b7605e9..2adb6be27eb 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index da3b2f4f7ee..cb407b7b794 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index 28d57753c6b..95e6e47ef24 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index 3b028e21923..b541f3e5eba 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index c31bc002cf2..12f24675229 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index ac6a99051a2..7cb71a404fb 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index dd53f806a12..8bc5fa58555 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index 49eb0533ad6..c4702a157bd 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index 467e6cf6d0b..37bb01a7fde 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index 1f66fefd9dd..5eac7fa484f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index e924760d1da..d87eb71072c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index da94fa780eb..cd0c2aa23c8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index 54766d29e39..4b1df2e5873 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index 58576a1503a..a19ec7e2bc9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index d74c07e91f6..dca04392250 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index ecf120b5323..b17a6a3f2b6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index e9ee643db7d..9ee5436361d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index bd5b3b72272..5da13e82cf3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index 0815cc9e763..19b506f6cfb 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index 67a4d1e9446..c0861a6575a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index 9b0698ebc44..1b856e62751 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index c4163027076..2566458572b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 99cdf223493..e0995d786bf 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index d5ae929b573..ad662020812 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index 26d79f95b57..91b12c524e5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index c8e49fe411d..41fd6f62fbb 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index 5157b56df8c..9d95c802276 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index a906129da33..cfd06cfc69b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index 1754214d929..1c7ab30ca29 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 62e6ea4a560..ad6295db9e7 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index 3062be2c8e9..7e60f0e2c0b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 755589ba6e4..7953c7344a8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index f5384ac6fbc..60d97279859 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index df175c2fc1c..0d5ee4435b8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index f2cb6fc4d00..460e93a273b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index d8683fc274c..a3215b05007 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index f3347fe934c..676962ab5c2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index c45395582a6..0ba3b0e9805 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index bf2d88bc7f9..d317119a8a9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index c70bdf43fea..cd5e061533d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index eabe13a607e..93c0494e6c1 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index 5896f5dba2e..bc398e4de7c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index c7fe93aee42..27a6789646c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index f4ae7166c69..407e2ee7824 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index f7f91b4f5b8..19496a30f4c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index c39fad87f2a..c8d6998840e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index 930698fa0a7..622439db5bf 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index 2d8e975d7a9..c5a77d8b259 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index e35cbb2a0e7..cf677fc48a4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index d01da842a0d..e12cc55e746 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 7e592c38417..1332033465e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index 6cbdf831a04..2b04eaf3508 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index e0049c6417a..f3f358ed59c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index e7b0b9d994e..8be34495e20 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index 7742db20091..0beb19cc291 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index ef9c12a6800..1fdb40cd6fc 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index 92acd948b71..d8ddf02a6cb 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index f9fce37284a..98ca947d503 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index 8c6e6bf1de4..28c4362053d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index 1d59c9f1117..dbad3475e52 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index eb4c81b7b42..cc2e94e0d29 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index d839d2f8769..f6bfc9e75ab 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index d200845ae0f..84a9f74ae04 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index 08fe40a0701..00267d4115c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index a88b734a222..4d485cf0758 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index bc5f9eba722..69af4deca35 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index b97919169f5..5c0ef698e4a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 131e6cc5ac4..d2fc16d8270 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index ac93e4f4a73..4b79d926326 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index edfc7ba4b34..57bd873b268 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index 4a948981b3b..24b86575fb0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index b413729868e..9907d813167 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index fde12265000..1828dd6ab36 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index 36a25d610cf..0c1a6aacf9d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index c8cff5fb700..6f73cf38f00 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index dfed271fec1..879494efb8a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index a31898c377d..5a26fb097f9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index 29feb0cf613..bbc45daaa21 100644 --- a/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Working with Text Question H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index 05765087c87..75fc123e8a2 100644 --- a/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Working with Text Question I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index e496b6b12a8..35c0cd937ec 100644 --- a/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Working with Text Question J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/swahili/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/swahili/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 92c630f9429..acf6ed00556 100644 --- a/curriculum/challenges/swahili/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/swahili/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 3fcdcc4105c..74aaa2353f6 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Dialogue 2: Tom Meets the Coworker Next To Him" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index 857d52d4c51..fa5b427fdc5 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Task 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index 4378e29c5a2..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 1b087682364..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --sentence-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## --blanks-- - -`didn't` - -### --feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index b151c618ba5..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index e05d1b4d18c..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 15a7e2d974a..bc57860a94a 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Dialogue 3: Maria And Mark Talk about Their Projects" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 8ecc2d884fc..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index 7d3c1bf3ab8..7f272358313 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index 7f0e05f85c4..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 329730abb2b..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index 08a8c6eb76c..52838f37f84 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 4713f6f90e7..c4b97533063 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index 82ca13e64a4..6672cad0a72 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 3dd315d87d0..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index 905883840d1..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index b8c73e4627d..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fb7e5ccda2d..c2978af6438 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index 5c853b53bf8..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index e1bc9517b30..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..e5571f08f36 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..ea4e9a66215 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index 0c3e95d7e70..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 0477289c3a0..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index de300f3817e..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index be0936fbf23..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index df6f482155c..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index d4df391d196..6947fe048c2 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index 4b1b6c85354..e05448d9d48 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Task 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 6a156cf03c9..aaa7a3890de 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Task 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 1100c9f31e1..ea5416f070f 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Task 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index b179cffecfa..91066451909 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Task 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4da53b335b3..109deef84e4 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Task 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index 7b44311d781..5bd0b159b4a 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Task 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index fdb21d1ed9d..527d24103b0 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Task 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index 1e31d5a8d61..b536269cb5a 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Task 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index 8ace10d337a..9ea5dfd2ec2 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Task 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 81edb3e0fd6..0031c5026bb 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Task 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index e75b693a95d..dc9412ebb8f 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Task 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 0dbcd5b481c..53772f4f629 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Task 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index 3b863fbe4f2..564de6f07b1 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Task 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index a9c3f1023cb..1f031ee3f1e 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Task 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8071d500e2c..f2d572900d8 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Task 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index dcaaac02531..4b818dc4a70 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Task 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index d13730fbcbe..707eb0d122d 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Task 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index 4f7e51f8761..e117e9317d8 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Task 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 0277f95d461..5b4096f746c 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Task 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 66819e77b5c..7221646546e 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Task 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index dd48bea2f36..03428f51432 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Task 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index a0b86842339..287f03ddd1e 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Task 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 5a146990145..1538fbae725 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Task 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 3b57d6e1029..331abe3703f 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Task 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index d821592ddb0..93862c576dc 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Task 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index aece3c769fe..5afcfa7c916 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Task 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index bcb5b843508..7937868764f 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Task 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index f2a943bbab1..bf7fa023589 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Task 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index c41db31d167..304a2c583d8 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Task 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index 65a01504a4c..98e230933ca 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Task 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 0bfb69fe732..054af388b35 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Task 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 47fdc4fb7bd..3a5f7c3594b 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Task 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 45bd9e0ba7e..ff7dad74588 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index c52825c0a39..d41cb232f9c 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Task 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index f35cc179d01..a29433a1b9a 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Task 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index 14d94ddc354..d29b5313cd6 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Task 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 644484baa24..aa9a85fb288 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Task 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index e2698fd6d0a..7eed555b4e1 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Task 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 08dba3078f8..fd66f011103 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Task 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index 7741f726ac6..198f4c0b6e9 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Task 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 53ea8f1d05b..db488ae0a03 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Task 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index e96f0601c02..fcebb2960ea 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Task 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 66974168235..b3152c55726 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Task 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 8cfa023f5bb..921551d84e0 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Task 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 0393e0dbe54..778df3691d7 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Task 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index e165820fa08..cf208824a34 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Task 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index e159ec1971d..7d49d97efb2 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Task 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index eed778ac3ca..924dc459772 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Watch the video above to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 61135184e62..32c51e43652 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Task 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index e6fd179a995..bb730a97243 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Task 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index d0605c291fd..b96607f08e3 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Task 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 7ed97036ff7..1649db7e147 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Task 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index 916e4e6a50a..4d1c3371618 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Task 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 6afcd6df067..7161861383e 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Task 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 2446f74c3d2..000ef53d2ef 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Task 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index d7958ce3d86..f9abd0109a4 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Task 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 62decaab12c..b13756997fc 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Task 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index e1e331f8208..2de180a58c7 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Task 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index c668d971145..0866794a4e5 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Task 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8de15283219..610f7a26d7a 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Task 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index 46cc7610b2f..185183a0410 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Task 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index a97c197e22e..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index 5674935eed0..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index a966696d7b6..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 39ecfc10ec3..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index e3c77f64da4..00000000000 --- a/curriculum/challenges/swahili/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/ukrainian/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md b/curriculum/challenges/ukrainian/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md index 940eb4d3c22..bdff78449c9 100644 --- a/curriculum/challenges/ukrainian/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md +++ b/curriculum/challenges/ukrainian/01-responsive-web-design/applied-visual-design/use-the-s-tag-to-strikethrough-text.md @@ -2,7 +2,6 @@ id: 587d781b367417b2b2512aba title: Використання тегу s щоб закреслити текст challengeType: 0 -videoUrl: '' forumTopicId: 301079 dashedName: use-the-s-tag-to-strikethrough-text --- diff --git a/curriculum/challenges/ukrainian/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md b/curriculum/challenges/ukrainian/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md index ee316402226..2cc3705491b 100644 --- a/curriculum/challenges/ukrainian/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md +++ b/curriculum/challenges/ukrainian/01-responsive-web-design/basic-css/improve-compatibility-with-browser-fallbacks.md @@ -2,7 +2,6 @@ id: 5b7d72c338cd7e35b63f3e14 title: Покращення сумісності із застосуванням резервних значень для браузера challengeType: 0 -videoUrl: '' forumTopicId: 301087 dashedName: improve-compatibility-with-browser-fallbacks --- diff --git a/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md b/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md index 99d25ba628f..3bf6a241343 100644 --- a/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md +++ b/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/assigning-the-value-of-one-variable-to-another.md @@ -2,7 +2,6 @@ id: 5ee127a03c3b35dd45426493 title: Присвоєння значення однієї змінної до іншої challengeType: 1 -videoUrl: '' forumTopicId: 418265 dashedName: assigning-the-value-of-one-variable-to-another --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-budget-app-project/budget-app.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-budget-app-project/budget-app.md index 0324c880a8f..210e77dcc04 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-budget-app-project/budget-app.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-budget-app-project/budget-app.md @@ -77,7 +77,7 @@ Percentage spent by category g ``` -Note: open the browser console with F12 to see a more verbose output of the tests. +Примітка: відкрийте консоль браузера, натиснувши на F12, щоб побачити детальніший результат тестів. # --hints-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-polygon-area-calculator-project/polygon-area-calculator.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-polygon-area-calculator-project/polygon-area-calculator.md index f1ed29cf81b..d969caaaa9d 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-polygon-area-calculator-project/polygon-area-calculator.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-polygon-area-calculator-project/polygon-area-calculator.md @@ -75,7 +75,7 @@ Square(side=4) 8 ``` -Note: open the browser console with F12 to see a more verbose output of the tests. +Примітка: відкрийте консоль браузера, натиснувши на F12, щоб побачити детальніший результат тестів. # --hints-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-probability-calculator-project/probability-calculator.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-probability-calculator-project/probability-calculator.md index 124c62f823f..7a66dcfbb63 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-probability-calculator-project/probability-calculator.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-probability-calculator-project/probability-calculator.md @@ -55,7 +55,7 @@ probability = experiment(hat=hat, _Підказка: спробуйте використати вже імпортовані модулі зверху. Не ініціалізуйте випадкове початкове значення у файлі._ -Note: open the browser console with F12 to see a more verbose output of the tests. +Примітка: відкрийте консоль браузера, натиснувши на F12, щоб побачити детальніший результат тестів. # --hints-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-time-calculator-project/time-calculator.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-time-calculator-project/time-calculator.md index 6acd75f8a5a..6535b4e0470 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-time-calculator-project/time-calculator.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-a-time-calculator-project/time-calculator.md @@ -44,7 +44,7 @@ add_time('6:30 PM', '205:12') Не імпортуйте бібліотеки Python. Припустимо, що початковий час є дійсним часом. Хвилини у проміжку часу будуть цілим числом меншим за 60, але години можуть бути будь-яким цілим числом. -Note: open the browser console with F12 to see a more verbose output of the tests. +Примітка: відкрийте консоль браузера, натиснувши на F12, щоб побачити детальніший результат тестів. # --hints-- Виклик `add_time('3:30 PM', '2:12')` має повернути `'5:42 PM'`. diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-an-arithmetic-formatter-project/arithmetic-formatter.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-an-arithmetic-formatter-project/arithmetic-formatter.md index 6bbdab559cb..a2602fd6aed 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-an-arithmetic-formatter-project/arithmetic-formatter.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/build-an-arithmetic-formatter-project/arithmetic-formatter.md @@ -64,7 +64,7 @@ arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) - Приклади мають бути розділеними чотирма пробілами. - Знизу кожного прикладу має бути риска. Риска повинна йти по всій довжині прикладу індивідуально. (На прикладі вище видно, як це має виглядати.) -Note: open the browser console with F12 to see a more verbose output of the tests. +Примітка: відкрийте консоль браузера, натиснувши на F12, щоб побачити детальніший результат тестів. # --hints-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md deleted file mode 100644 index 222e999f95a..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656873ffdc638f7e290f60de.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 656873ffdc638f7e290f60de -title: Крок 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -У цьому проєкті ви дізнаєтесь про класи та об’єкти, створивши розв’язувач судоку. - -Клас в Python — це основа для створення об’єктів. Об’єкти, створені з класу, є екземплярами цього класу. Клас можна створити за допомогою такого синтаксису: - -```js -class ClassName: -``` - -Спочатку ви створите дошку 9×9 за допомогою класів, а потім заповните її значеннями головоломки. - -Почніть зі створення класу `Board`. - -# --hints-- - -Клас повинен мати назву `Board`. - -```js -assert.match(code, /class\s+Board\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md deleted file mode 100644 index efdacb7e286..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656874efd5102b81815c8ef7.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: 656874efd5102b81815c8ef7 -title: Крок 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Новий екземпляр класу створюється за допомогою нотації функції `ClassName()`. Створення екземпляра створює порожній об’єкт. Класи можуть мати методи, які є локальними функціями для кожного екземпляра. Методи оголошуються наступним чином: - -```python -class ClassName: - def method_name(): - pass -``` - -Метод `__init__` — це спеціальний метод, який дозволяє створити екземпляр об’єкта в налаштованому стані. Коли клас реалізує метод `__init__`, то `__init__` автоматично викликається під час створення екземпляра. - -Створіть метод `__init__` в межах класу `Board`. - -# --hints-- - -Метод повинен мати назву `__init__`. Не додавайте жодних параметрів. - -```js -assert.match(code, / +def\s+__init__\s*\(\s*\)\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md deleted file mode 100644 index 6e62c877a25..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688efcc78c9495e73acfc9.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: 65688efcc78c9495e73acfc9 -title: Крок 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Додайте два параметри до методу `__init__`. Порядок має значення: - -- `self`: це посилання на екземпляр класу. Цей параметр прийнято називати self. -- `board`: очікується, що параметр board буде передано під час створення екземпляра класу `Board`. - -# --hints-- - -Додайте параметри `self` та `board` до методу. - -```js -assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*board\s*\):/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md deleted file mode 100644 index 802e23b6103..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f22703200963a85dfb7.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 65688f22703200963a85dfb7 -title: Крок 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Призначте значення параметра `board` (що передається під час створення екземпляра класу `Board`) до змінної екземпляра під назвою `board`, використавши `self.board` в межах методу `__init__`. - -`self.board` посилається на атрибут екземпляра класу `board`. Це змінна, яка належить до об’єкта, створеного з класу `Board`. - -# --hints-- - -Метод `__init__` повинен містити `self.board = board`. - -```js -assert.match(code, /self\.board\s*=\s*board/); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class Board: - def __init__(self, board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md deleted file mode 100644 index 0092a2838ef..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f737b0ef396bf0c22d6.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65688f737b0ef396bf0c22d6 -title: Крок 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Тепер ви перейдете до створення самої сітки 9×9. - -Вхідна головоломка виглядатиме так: - -```py -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] -``` - -Отримана сітка виглядатиме так: - -сітка судоку - - -Визначте метод `__str__` в межах класу `Board`. Також додайте параметр `self`. Цей метод автоматично викликається, якщо використати функцію `str()` на екземплярі класу або використати `print()` з об’єктом. - -# --hints-- - -Метод повинен мати назву `__str__`. - -```js -assert.match(code, /def\s+__str__\s*\(/); -``` - -Додайте параметр `self` до методу. - -```js -assert.match(code, /def\s+__str__\s*\(\s*self\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md deleted file mode 100644 index 5122c33fce2..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688f93a1b6e9970f710f62.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65688f93a1b6e9970f710f62 -title: Крок 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Щоб створити верхній край сітки, створіть змінну `upper_lines` і призначте до неї значення `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'`. - -Цей рядок представляє верхній край сітки судоку у візуально привабливому стилі ASCII. Він використовує спеціальні символи Unicode, щоб намалювати краї та перетини. - -# --hints-- - -Призначте значення `f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n'` до змінної під назвою `upper_lines`. - -```js -({ test: () => assert.match(code, /upper_lines\s*=\s*f("|')\\n╔═══\{\s*(?=[^\1])("|')╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}\{\s*\2╦═══\2\s*\}\{\s*\2╤═══\2\s*\*\s*2\s*\}╗\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md deleted file mode 100644 index 80c09a95334..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65688fc27e8dda9760c45d7d.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: 65688fc27e8dda9760c45d7d -title: Крок 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Щоб створити середні краї сітки судоку, створіть змінну `middle_lines` і призначте до неї значення `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'`. - -# --hints-- - -Призначте значення `f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n'` до змінної під назвою `middle_lines`. - -```js -({ test: () => assert.match(code, /middle_lines\s*=\s*f("|')╟───\{\s*(?=[^\1])("|')┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}\{\s*\2╫───\2\s*\}\{\s*\2┼───\2\s*\*\s*2\s*\}╢\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md deleted file mode 100644 index 8ff5a407e47..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689020cfd5279803976b25.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 65689020cfd5279803976b25 -title: Крок 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Щоб створити нижній край сітки судоку, створіть змінну `lower_lines` і призначте до неї значення `f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'`. - -# --hints-- - -Додайте `lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n'` до коду. - -```js -({ test: () => assert.match(code, /lower_lines\s*=\s*f("|')╚═══\{\s*(?=[^\1])("|')╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}\{\s*\2╩═══\2\s*\}\{\s*\2╧═══\2\s*\*\s*2\s*\}╝\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - ---fcc-editable-region-- - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md deleted file mode 100644 index dd5518ba1bd..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568904b83a2f29878578146.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568904b83a2f29878578146 -title: Крок 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Ініціалізуйте змінну `board_string` вмістом `upper_lines`. Це буде першим кроком для побудови візуального представлення сітки судоку. - -# --hints-- - -Метод `__str__` повинен містити `board_string = upper_lines`. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/board_string\s*=\s*upper_lines/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): ---fcc-editable-region-- - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md deleted file mode 100644 index 749375f6f98..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568917528820d99236ad811.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: 6568917528820d99236ad811 -title: Крок 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Тепер вам потрібно переглянути кожен ряд сітки судоку. - -Перелічування — це зручний спосіб відстежувати елемент і його позицію в списку. Функція `enumerate()` — це вбудована функція в Python, яка приймає ітерований об’єкт (наприклад, список, кортеж або рядок) та повертає ітератор, який створює кортежі, що містять індекси та відповідні значення з ітерованого об’єкта. - -Ініціюйте цикл `for`, щоб ітерувати над кожним рядом (`line`) на сітці судоку (`self.board`). - -Використайте перелічування, щоб отримати індекс (`index`) та вміст (`line`) всіх рядів. - -Загальний синтаксис буде таким: - -```js -for x, y in enumerate(parameter): -``` - -# --hints-- - -Метод `__str__` повинен містити `for index, line in enumerate(self.board):`. - -```js -assert.match( - code, - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md deleted file mode 100644 index e5dfce0f6b3..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656896ffecbf07a2d3402a93.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -id: 656896ffecbf07a2d3402a93 -title: Крок 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Ініціалізуйте порожній список `row_list` в межах циклу, щоб зберегти елементи з одного ряду сітки судоку. - -# --hints-- - -Ви повинні мати змінну `row_list`. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=/)); - } -}) -``` - -`row_list` має бути порожнім списком. - -```js -({ test: () => - { - const str = __helpers.python.getDef(code.replace(/\r/g, ''), "__str__"); - const {function_body} = str; - assert(function_body.match(/row_list\s*=\s*\[\s*\]/)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md deleted file mode 100644 index 46bfb1bb5de..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568991b4d4874a4d5271337.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568991b4d4874a4d5271337 -title: Крок 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Далі ви розділите кожен ряд на три сегменти, щоб правильно представити квадрати 3×3. - -Створіть вкладений цикл `for`, щоб ітерувати над кожним сегментом ряду. Використайте `square_no`, `part` як змінну ітерації та функцію `enumerate()`. Наразі залиште виклик `enumerate()` порожнім. - -# --hints-- - -Внутрішній цикл повинен мати `square_no` як лічильник та `part` як елемент з ітерованого об’єкта. - -```js -assert.match(code, /for\s+square_no\s*,\s*part/) -``` - -Наявний цикл `for` повинен містити `for square_no, part in enumerate()`. - -```js -assert.match(code, /for\s+square_no\s*,\s*part\s+in\s+enumerate\s*\(\s*\)\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md deleted file mode 100644 index 7b74f518f47..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568994faf481da5d37bfa40.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 6568994faf481da5d37bfa40 -title: Крок 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Тепер ви повинні створити три відрізки, які потрібно передати до функції `enumerate`. - -Використайте зрізи списку, щоб створити три списки однакової довжини, які представляють сегмент `line` кожного квадрата 3×3, і передайте їх до виклику `enumerate()`. Додайте `start = 1`, щоб почати перелічування з `1`, а не `0`. - -# --hints-- - -Внутрішній цикл `for` повинен містити `enumerate([line[:3], line[3:6], line[6:]], start=1)`. - -```js -assert.match(code, /\[\s*line\s*\[\s*:3\s*\]\s*,\s*line\s*\[\s*3\s*:\s*6\s*\]\s*,\s*line\s*\[\s*6\s*:\s*\]\s*\]\s*,\s*start\s*=\s*1/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate(): ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md deleted file mode 100644 index c16dbc2a6d4..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568997f94c673a68b035b60.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 6568997f94c673a68b035b60 -title: Крок 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Тепер потрібно об’єднати елементи сегмента (`part`) за допомогою вертикальної лінії (`|`). - -Для цього спочатку використайте цикл `for` (`for item in part`), щоб отримати всі елементи. - -Потім використайте метод `join()` на символі `|`, щоб об’єднати елементи сегмента (`part`). - -Після цього перетворіть кожен елемент на рядок за допомогою `str(item)`. - -# --hints-- - -Використайте метод `join()` на символі `|`, щоб об’єднати елементи сегмента (`part`). Також додайте тест для "". - -```js -assert.match(code, /('|")\|\1\.join\s*\(/) -``` - -Викличте `str()` на кожному елементі в `part` за допомогою виразу-генератора. - -```js -({ test: () => assert.match(code, /\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\1\s+in\s+part\s*\)/) }) -``` - -Внутрішній цикл `for` повинен містити `'|'.join(str(item) for item in part)`. - -```js -({ test: () => assert.match(code, /("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md deleted file mode 100644 index 6eb0cea47db..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899c0478950a7e5db2cc0.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 656899c0478950a7e5db2cc0 -title: Крок 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Призначте об’єднаний рядок до змінної `row_square`. - -# --hints-- - -Призначте значення `'|'.join(str(item) for item in part)` до змінної під назвою `row_square`. - -```js -({ test: () => assert.match(code, /row_square\s*=\s*("|')\|\1\.join\s*\(\s*str\s*\(\s*(\w+)\s*\)\s+for\s+\2\s+in\s+part\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - '|'.join(str(item) for item in part) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md deleted file mode 100644 index 9c60038fe6a..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/656899f4214ee6a881bc8649.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: 656899f4214ee6a881bc8649 -title: Крок 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Розширте `row_list`, використавши елементи рядка `row_square`. - -# --hints-- - -Внутрішній цикл `for` повинен містити `row_list.extend(row_square)`. - -```js -({ test: () => assert.match(code, /row_list\.extend\s*\(\s*row_square\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md deleted file mode 100644 index eadf0d9ef46..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689a748de8fbaa00c5617e.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: 65689a748de8fbaa00c5617e -title: Крок 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Створіть інструкцію `if` в межах внутрішнього циклу, щоб перевірити, чи поточний сегмент (`square_no`) не є останнім (тобто не дорівнює `3`) - -# --hints-- - -Перевірте, чи поточний сегмент (`square_no`) не дорівнює `3`. - -```js -assert.match(code, /if\s+square_no\s*!=\s*3/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md deleted file mode 100644 index 85d746ed078..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689aa3d3f2b6aad204a59e.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: 65689aa3d3f2b6aad204a59e -title: Крок 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -Додайте символ `║` в кінці `row_list` в межах блоку `if`. - -# --hints-- - -Інструкція `if` повинна містити `row_list.append('║')`. - -```js -({ test: () => assert.match(code, /row_list\.append\s*\(\s*("|')║\1\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - ---fcc-editable-region-- - if square_no != 3: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md deleted file mode 100644 index aef5b5f7164..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689ad61dfa81ab9ffafc86.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 65689ad61dfa81ab9ffafc86 -title: Крок 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Далі ви створите рядкове представлення ряду з пробілами між елементами. - -Для цього створіть рядок `row` поза межами тіла внутрішнього циклу `for`. Призначте до нього відформатований рядок `f'║ {" ".join(row_list)} ║\n'`, щоб об’єднати елементи з `row_list`, розділені пробілом. - -# --hints-- - -Призначте відформатований рядок `f'║ {" ".join(row_list)} ║\n'` до змінної під назвою `row`. - -```js -({ test: () => assert.match(code, /row\s*\=\s*f("|')║\s\{(?!\1)("|')\s\2\.join\s*\(\s*row_list\s*\)\s*\}\s║\\n\1/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] ---fcc-editable-region-- - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md deleted file mode 100644 index c372c708c34..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/65689b055e6f49ac6f82d3cf.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 65689b055e6f49ac6f82d3cf -title: Крок 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Якщо ви передаєте вхідну сітку головоломки, то `0` використовується для порожніх клітинок. - -Для кращого візуального представлення замініть порожні клітинки в ряді на пробіл, використавши метод `replace`. - -Метод `replace()` приймає два аргументи: перший — символ, який потрібно замінити, а другий — символ, на який потрібно замінити. - -Після заміни призначте результат до змінної `row_empty`. - -# --hints-- - -Замініть всі `0` в ряді на пробіли за допомогою методу `replace`. - -```js -({ test: () => assert.match(code, /row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/) }) -``` - -Зовнішній цикл `for` повинен містити `row_empty = row.repalce('0', ' ')`. - -```js -({ test: () => assert.match(code, /row_empty\s*=\s*row\.replace\s*\(\s*("|')0\1\s*,\s*("|') \2\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md deleted file mode 100644 index 1e2887f9950..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568a242a3e1efc22b07274d.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 6568a242a3e1efc22b07274d -title: Крок 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -`board_string` поступово створюється, оскільки цикл ітерує над кожним рядом, створюючи повне ASCII-представлення сітки судоку. - -Додайте змінений рядок `row_empty` до `board_string`. - -# --hints-- - -Зовнішній цикл `for` повинен містити `board_string += row_empty`. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*row_empty/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md deleted file mode 100644 index 9626548721e..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb1ffe8462c427c0d386.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 6568bb1ffe8462c427c0d386 -title: Крок 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Створіть інструкцію `if` в межах зовнішнього циклу `for`, яка перевірятиме, чи індекс поточного ряду менший за `8`. Причина в тому, що останній ряд сітки має індекс `8`, а останній ряд потрібно обробляти по-іншому. - -# --hints-- - -Зовнішній цикл `for` повинен містити `if index < 8:`. - -```js -assert.match(code, /if\s+index\s*<\s*8\s*:/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - ---fcc-editable-region-- - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md deleted file mode 100644 index e22986d386e..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bb656c67e9c54cced2d7.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 6568bb656c67e9c54cced2d7 -title: Крок 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Тепер потрібно перевірити, чи цей ряд є останнім у квадраті 3×3. Так відбувається, якщо `index % 3` дорівнює `2`. - -Вставте ще одну інструкцію `if` в межах наявного блоку `if`, щоб перевірити цю умову. - -# --hints-- - -Інструкція `if index < 8` повинна містити `if index % 3 == 2:`. - -```js -assert.match(code,/if\s+index\s*%\s*3\s*==\s*2\s*:/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty ---fcc-editable-region-- - if index < 8: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md deleted file mode 100644 index 1b43c2f9512..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bba429481cc693fc2570.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 6568bba429481cc693fc2570 -title: Крок 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Якщо поточний ряд є останнім рядом квадрата 3×3, то до `board_string` потрібно додати інший рядок, щоб створити візуально привабливий край сітки. - -Додайте наступний рядок до поточного значення `board_string` в межах інструкції `if`: `f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -# --hints-- - -Інструкція `if index % 3 == 2` повинна містити `board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n'`. - -```js -assert.match(code, /board_string\s*\+=\s*f("|')╠═══\{\s*(?=[^\1])("|')╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}\{\s*\2╬═══\2\s*\}\{\s*\2╪═══\2\s*\*\s*2\s*\}╣\\n\1/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md deleted file mode 100644 index 4ae549d0212..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bbc8c3bda1c773e23cf1.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: 6568bbc8c3bda1c773e23cf1 -title: Крок 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Тепер потрібно обробити інші ряди. Якщо внутрішня умова оцінюється як `False` (тобто поточний ряд не є останнім рядом квадрата 3×3), додайте рядок `middle_lines` до `board_string`. Напишіть це в блоці `else`. - -Пригадайте, що `middle_lines` представляє середні краї сітки та включає горизонтальні перетини. - -# --hints-- - -Додайте блок `else` до інструкції `if`. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -Блок `else` повинен містити `board_string += middle_lines`. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*middle_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: ---fcc-editable-region-- - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md deleted file mode 100644 index 5c5cdd88f73..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc19f3418dc8a8821187.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bc19f3418dc8a8821187 -title: Крок 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Тепер потрібно обробити останній ряд всієї сітки. - -`lower_lines` представляє нижній край всієї сітки. - -Створіть блок `else`, щоб додати рядок `lower_lines` до `board_string`, якщо умова зовнішньої інструкції `if` є хибною. - -# --hints-- - -Створіть блок `else` в межах зовнішньої інструкції `if`. Зверніть увагу на відступи. - -```js -({ test: () => assert.match(code, /else\s*:/m) }) -``` - -Зовнішня умова `else` повинна містити `board_string += lower_lines`. - -```js -({ test: () => assert.match(code, /board_string\s*\+=\s*lower_lines/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - ---fcc-editable-region-- - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md deleted file mode 100644 index f70ae5ea358..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bc85c5beadca3e0f6eb1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bc85c5beadca3e0f6eb1 -title: Крок 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Як тільки зовнішній цикл буде завершено для всіх рядів, поверніть кінцевий `board_string`. Цей рядок містить повне візуальне представлення сітки в стилі ASCII, включно з краями та перетинами. - -# --hints-- - -Поверніть змінну `board_string` в кінці зовнішнього циклу `for`. - -```js -const tCode = code.replace(/\r/g, ''); -const str = __helpers.python.getDef(tCode, "__str__"); -const {function_body} = str; -const indent = function_body.match(/ +/)[0]; -const returnStatement = `${indent}return board_string`; -assert.match(code, new RegExp(returnStatement)); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines ---fcc-editable-region-- - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md deleted file mode 100644 index 2c865c05d7a..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd3741e379ccc220af1b.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bd3741e379ccc220af1b -title: Крок 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Тепер ви попрацюєте над методом, який знаходить порожні клітинки на сітці. Для цього створіть метод під назвою `find_empty_cell` в межах класу `Board`. Він приймає `self` як параметр, що представляє екземпляр класу. Використайте ключове слово `pass` у тілі функції. - -# --hints-- - -Метод повинен мати назву `find_empty_cell`. - -```js -assert.match(code, /def\s+find_empty_cell/); -``` - -Додайте параметр `self` до методу. - -```js -assert.match(code, /def\s+find_empty_cell\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md deleted file mode 100644 index 8556ea5f8eb..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bd85482755cdd26443ae.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6568bd85482755cdd26443ae -title: Крок 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -Створіть цикл `for` в межах методу `find_empty_cell` та використайте функцію `enumerate()`, щоб ітерувати над кожним рядом сітки. - -Використайте `row` для індексу поточного ряду та `contents` для елементів поточного ряду. - -# --hints-- - -Створіть цикл `for`, щоб ітерувати над `enumerate(self.board)`. - -```js -const empty = __helpers.python.getDef( - code, - 'find_empty_cell' -); -const { function_body } = empty; -assert( - function_body.match( - /for\s+(\w+)\s*,\s*(?!\1)(\w+)\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m - ) -); -``` - -Метод `find_empty_cell` повинен містити `for row, contents in enumerate(self.board):`. - -```js -assert.match( - code, - /for\s+row\s*,\s*contents\s+in\s+enumerate\s*\(\s*self\.board\s*\)\s*:/m -); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - ---fcc-editable-region-- - def find_empty_cell(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md deleted file mode 100644 index 3e128a5bfaa..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bdb69e05a9cee01068a8.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 6568bdb69e05a9cee01068a8 -title: Крок 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Додайте блок `try` до тіла циклу `for`. - -# --hints-- - -Додайте блок `try`. - -```js -assert.match(code, /try\s*\:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md deleted file mode 100644 index a702d3e2a3c..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568beebba98a3d1f26f6bf8.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: 6568beebba98a3d1f26f6bf8 -title: Крок 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -Спробуйте знайти індекс першої згадки `0` в поточному ряді в блоці `try` за допомогою `contents.index(0)`. Збережіть результати в змінній `col`. - -# --hints-- - -Використайте індекс першої згадки `0` в поточному ряді за допомогою `contents.index(0)`. - -```js -assert.match(code, /contents\.index\(\s*0\s*\)/) -``` - -Блок `try` повинен містити `col = contents.index(0)`. - -```js -assert.match(code, /col\s*=\s*contents\.index\(\s*0\s*\)/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md deleted file mode 100644 index 174170758ac..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf22bb5de0d2e8260cf3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 6568bf22bb5de0d2e8260cf3 -title: Крок 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Якщо `0` знайдено, то код одразу повертає кортеж (row, col) з індексом ряду та індексом стовпця порожньої клітинки. - -Поверніть значення `row` та `col`. - -# --hints-- - -Блок `try` повинен містити `return row, col`. - -```js -assert.match(code, /return\s*row\s*,\s*col/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md deleted file mode 100644 index d5e0f048f0e..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf5e5b2f4bd3eb7ef995.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 6568bf5e5b2f4bd3eb7ef995 -title: Крок 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Створіть блок `except` для обробки помилки `ValueError`, яка виникає, якщо `0` не знайдено. - -# --hints-- - -Внутрішній цикл `for` повинен містити `except ValueError:`. - -```js -assert.match(code, /except\s+ValueError/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): ---fcc-editable-region-- - try: - col = contents.index(0) - return row, col - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md deleted file mode 100644 index 1c0d69103e2..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bf853bf06dd4ed25d4ca.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: 6568bf853bf06dd4ed25d4ca -title: Крок 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -Якщо значення `0` немає в поточному ряді, то викидається помилка та виконується блок `except`. - -Блок `except` має спрацювати та перейти до наступного ряду. Для цього використайте `pass`. - -# --hints-- - -Блок `except` повинен містити `pass`. - -```js -assert.match(code, /pass/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col ---fcc-editable-region-- - except ValueError: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md deleted file mode 100644 index 49da900ce6c..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfb601a54ed5b367b44f.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 6568bfb601a54ed5b367b44f -title: Крок 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Якщо цикл завершується, не знаходячи порожніх клітинок, то метод має повернути `None`, щоб вказати, що сітку заповнено. - -Поверніть `None` поза блоком циклу `for`. - -# --hints-- - -Поза циклом `for` має бути `return None`. - -```js -({ test: () => - { - const empty = __helpers.python.getDef(code, "find_empty_cell"); - const {function_body} = empty; - const indent = function_body.match(/ +/)[0]; - const re = new RegExp(`^${indent}return\\s+None`, "m"); - assert.match(function_body, re); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += lower_lines - - return board_string - - ---fcc-editable-region-- - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md deleted file mode 100644 index 7a1728331a9..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568bfd65322add674039bde.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6568bfd65322add674039bde -title: Крок 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Далі ви попрацюєте над методом, який перевіряє, чи можна вставити задане число у вказаний ряд сітки. - -Створіть метод під назвою `valid_in_row`. Він повинен приймати три параметри: - -- `self`: представляє екземпляр класу. -- `row`: представляє індекс ряду. -- `num`: представляє число, яке буде перевірено. - -Також не забудьте додати ключове слово `pass` до тіла функції. - -# --hints-- - -Ви повинні мати метод `valid_in_row`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "valid_in_row"); -assert.exists(valid); -``` - -Клас `Board` повинен містити `def valid_in_row(self, row, num)`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_row"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md deleted file mode 100644 index cc817b013ce..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0013b3b62d7617518c7.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 6568c0013b3b62d7617518c7 -title: Крок 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Створіть вираз, який перевіряє, чи число відсутнє в цьому ряді. - -Вам потрібно перевірити, чи числа (`num`) немає в `self.board[row]`. - -# --hints-- - -`valid_in_row` має містити `num not in self.board[row]`. - -```js -assert.match(code, /num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md deleted file mode 100644 index 7fc2f9efdb2..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c024933423d85d5ed93c.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -id: 6568c024933423d85d5ed93c -title: Крок 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -Якщо в ряді немає `num`, то вираз оцінюється як `True`, і це означає, що число можна вставити. - -Якщо в ряді є `num`, то вираз оцінюється як `False`, і вставка б порушила правила. - -Поверніть значення з виразу, який ви написали в попередньому кроці, щоб можна було перевірити дійсність числа. - -# --hints-- - -`valid_in_row` має містити `return num not in self.board[row]`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_row"); -const {function_body} = valid; -assert.match(function_body, /return\s+num\s+not\s+in\s+self\.board\s*\[\s*row\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - ---fcc-editable-region-- - def valid_in_row(self, row, num): - num not in self.board[row] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md deleted file mode 100644 index 0e3a277e5d9..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c073d5f37fd99ab2ab0c.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6568c073d5f37fd99ab2ab0c -title: Крок 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Далі ви створите метод, який перевіряє, чи можна вставити число у вказаний стовпець сітки (перевіряючи, чи в цьому стовпці будь-якого ряду немає даного числа). - -Для цього створіть метод під назвою `valid_in_col` в межах класу `Board`. - -Він повинен приймати три параметри: - -- `self`: представляє екземпляр класу. -- `col`: представляє індекс стовпця. -- `num`: представляє число, яке буде перевірено. - -# --hints-- - -Ви повинні мати метод `valid_in_col`. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_col"); -assert.exists(valid); -``` - -Метод має приймати три параметри: `self`, `col` та `num`. Порядок має значення. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_col"); -assert.match(function_parameters, /self\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md deleted file mode 100644 index e3a225d6f32..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6568c0a5edddc3daa65d20b2.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6568c0a5edddc3daa65d20b2 -title: Крок 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Тепер потрібно перевірити, чи дане число не дорівнює числу у вказаному стовпці поточного ряду. - -Для цього спочатку ітеруйте над рядами з 2D-списку `self.board`, використовуючи цикл `for` в діапазоні від `0` до `8`. Використайте `row` як змінну ітерації. - -# --hints-- - -`valid_in_col` має містити `for row in range(9)`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /for\s+row\s+in\s+range\(\s*9\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md deleted file mode 100644 index c0a86d194ad..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d83fe4dcc614c2ff971d.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: 6569d83fe4dcc614c2ff971d -title: Крок 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -Для кожного елемента у вказаному стовпці (`col`) поточного ряду (`row`) перевірте, чи значення на поточній позиції в 2D-списку не дорівнює наданому `num`. - -# --hints-- - -`valid_in_col` має містити `self.board[row][col] != num`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - ---fcc-editable-region-- - def valid_in_col(self, col, num): - ---fcc-editable-region-- - for row in range(9) -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md deleted file mode 100644 index 5e77250137c..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d8a4b8d85515cbb1ce72.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569d8a4b8d85515cbb1ce72 -title: Крок 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Цей вираз генерує список булевих значень, які визначають, як оцінюється умова `self.board[row][col] != num` (`True` або `False`) для кожного елемента у вказаному стовпці в усіх рядах. - -Передайте цей вираз-генератор до функції `all()`, щоб перевірити, чи всі елементи в стовпці відрізняються від `num`. - -Пригадайте, що синтаксис функції `all` такий: - -```py -all( - self.board[row][col] != num - for row in range(9) - ) -``` - -# --hints-- - -`valid_in_col` має містити `all(self.board[row][col] != num for row in range(9))`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - self.board[row][col] != num - for row in range(9) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md deleted file mode 100644 index 2ea2646b29a..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d946293d4f185e32e2da.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 6569d946293d4f185e32e2da -title: Крок 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Поверніть результат виклику методу `all()`. - -# --hints-- - -Поверніть результат виклику методу `all()`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_col"); -const {function_body} = valid; -assert.match(function_body, /return\s+all\s*\(\s*self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*!=\s*num\s+for\s+row\s+in\s+range\s*\(\s*9\s*\)\s*\)/m); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - ---fcc-editable-region-- - def valid_in_col(self, col, num): - all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md deleted file mode 100644 index 0fc117749b5..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d98303af38193149b66e.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569d98303af38193149b66e -title: Крок 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Далі ви попрацюєте над методом, який перевіряє, чи можна вставити число в квадрат 3×3. - -Створіть метод під назвою `valid_in_square` в межах класу `Board`. - -Він повинен приймати чотири параметри: - -- `self`: представляє екземпляр класу. -- `row`: представляє індекс ряду. -- `col`: представляє індекс стовпця. -- `num`: представляє число, яке буде перевірено. - -# --hints-- - -Ви повинні мати метод `valid_in_square`. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(block_body, "valid_in_square"); -assert.exists(valid); -``` - -Метод має приймати чотири параметри: `self`, `row`, `col` та `num`. Не забудьте додати `pass` до тіла функції. Порядок має значення. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "valid_in_square"); -assert.match(function_parameters, /self\s*,\s*row\s*,\s*col\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md deleted file mode 100644 index 5f648f46f6d..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569d9dfd53db11b176d2963.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 6569d9dfd53db11b176d2963 -title: Крок 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -Тепер потрібно обчислити початковий індекс ряду з блоку сітки 3×3. - -Для цього переконайтеся, що початковий індекс ряду кожного блоку 3×3 ділиться на 3. - -Цього можна досягти за допомогою такої математичної операції: `(row // 3) * 3`. Призначте результат цього обчислення до `row_start`. - -# --hints-- - -Призначте результат `(row // 3) * 3` до `row_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /row_start\s*=\s*\(\s*row\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md deleted file mode 100644 index ffb73778a30..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569da02e7e2641be14ff922.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569da02e7e2641be14ff922 -title: Крок 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Потім потрібно обчислити початковий індекс стовпця з блоку сітки 3×3. - -Для цього переконайтеся, що початковий індекс ряду кожного блоку 3×3 ділиться на 3. - -Подібно до попереднього кроку, цього можна досягти за допомогою такої математичної операції: `(col // 3) * 3`. Призначте результат цього обчислення до `col_start`. - -# --hints-- - -Призначте результат `(col // 3) * 3` до `col_start`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /col_start\s*=\s*\(\s*col\s*\/\/\s*3\s*\)\s*\*\s*3/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md deleted file mode 100644 index 9639ab3d3d5..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569de93a5340b202667deda.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 6569de93a5340b202667deda -title: Крок 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Створіть цикл `for`, який починається з `row_start` і закінчується одразу перед `row_start + 3`. Для створення множини можна використати функцію `range()`. Наприклад, якщо `row_start` дорівнює `3`, то цикл ітеруватиме над числами `3`, `4` та `5`. - -# --hints-- - -`valid_in_square` має містити `for row_no in range(row_start, row_start + 3):`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*row_start\s*,\s*row_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md deleted file mode 100644 index aa78149b878..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569def38470282151f873ce.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 6569def38470282151f873ce -title: Крок 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Вкладіть ще один цикл `for` в межах циклу, створеного в попередньому кроці, щоб ітерувати над множиною з трьох елементів, починаючи з `col_start`. Для створення множини знову скористайтеся функцією `range()`. - -# --hints-- - -`valid_in_square` має містити `for col_no in range(col_start, col_start + 3):`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -assert.match(function_body, /for\s+(\w+)\s+in\s+range\s*\(\s*col_start\s*,\s*col_start\s*\+\s*3\s*\)\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 ---fcc-editable-region-- - for row_no in range(row_start, row_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md deleted file mode 100644 index 9b8cd59931d..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df1d6fb83d22623b38c5.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 6569df1d6fb83d22623b38c5 -title: Крок 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Наступним кроком потрібно перевірити, чи вказане число (`num`) вже присутнє в поточній клітинці квадрата 3×3. - -Створіть інструкцію `if` в межах внутрішнього циклу `for`, яка перевіряє, чи поточна клітинка в `self.board` дорівнює `num`. - -# --hints-- - -`valid_in_square` має містити `if self.board[row_no][col_no] == num`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerFor = __helpers.python.getBlock(tCode, "for col_no in range(col_start, col_start + 3)"); -const {block_body} = innerFor; -assert.match(block_body, /if\s+self\.board\s*\[\s*row_no\s*\]\s*\[\s*col_no\s*\]\s*==\s*num\s*\:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): ---fcc-editable-region-- - for col_no in range(col_start, col_start + 3): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md deleted file mode 100644 index 4a4249b1b4a..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df6916294723e01f0035.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: 6569df6916294723e01f0035 -title: Крок 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Поверніть `False` в межах блоку `if`, щоб вказати, що число не можна вставити в квадрат. - -# --hints-- - -Поверніть `False` в межах блоку `if`. - -```js -const tCode = code.replace(/\r/g, ''); -const innerIf = __helpers.python.getBlock(tCode, "if self.board[row_no][col_no] == num"); -const {block_body} = innerIf; -assert.match(block_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): ---fcc-editable-region-- - if self.board[row_no][col_no] == num: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md deleted file mode 100644 index 02ec4185055..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569df9e20f74a251d482c5d.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569df9e20f74a251d482c5d -title: Крок 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Якщо числа немає, його можна вставити у квадрат, не порушуючи правил судоку. - -У цьому випадку поверніть `True` і зверніть увагу на відступи. - -# --hints-- - -Поза зовнішнім циклом `for` має бути `return True`. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "valid_in_square"); -const {function_body} = valid; -const indent = function_body.match(/ +/)[0]; -const re = new RegExp(`^${indent}return\\s+True`, "m"); -assert.match(function_body, re); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - ---fcc-editable-region-- - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md deleted file mode 100644 index 291277be79a..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569dffeee007f26d2b56d46.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569dffeee007f26d2b56d46 -title: Крок 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Створіть ще один метод `is_valid` в межах класу `Board`. Він повинен приймати три параметри: - -- `self` (представляє екземпляр класу), -- `empty` (кортеж, що представляє індекси рядів та стовпців порожньої клітинки), -- `num` (представляє число, яке буде перевірено). - -Цей метод перевіряє, чи задане число є дійсним вибором для порожньої клітинки на сітці, перевіряючи його сумісність з рядом, стовпцем та квадратом 3×3 вказаної порожньої клітинки. - -# --hints-- - -Назвою методу має бути `is_valid`. - -```js -const tCode = code.replace(/\r/g, ''); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const valid = __helpers.python.getDef(board.block_body, "is_valid"); -assert.exists(valid); -``` - -Метод має приймати три параметри: `self`, `empty` та `num`. Порядок має значення. - -```js -const tCode = code.replace(/\r/g, ''); -const valid = __helpers.python.getDef(tCode, "is_valid"); -const {function_parameters} = valid; -assert.match(function_parameters, /self\s*,\s*empty\s*,\s*num/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md deleted file mode 100644 index 9b6edd6b761..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2a01a97b231862ba2ff.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 6569e2a01a97b231862ba2ff -title: Крок 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Розпакуйте кортеж `empty` в межах методу на `row` та `col`. - -# --hints-- - -`is_valid` має містити `row, col = empty`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /row\s*,\s*col\s*=\s*empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md deleted file mode 100644 index f00e87fc4c0..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e2e1944fe7329ab21c7f.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: 6569e2e1944fe7329ab21c7f -title: Крок 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Перевірте, чи можна вставити число в певний ряд, викликавши `self.valid_in_row(row, num)`. Призначте результат до `valid_in_row`. - -# --hints-- - -`is_valid` має містити `valid_in_row = self.valid_in_row(row, num)`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_row\s*=\s*self\.valid_in_row\s*\(\s*row\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md deleted file mode 100644 index 3d2c906d234..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e309feb5d333867a034a.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e309feb5d333867a034a -title: Крок 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Перевірте, чи можна вставити число в певний стовпець, викликавши `self.valid_in_col(col, num)`. - -Призначте результат до `valid_in_col`. - -# --hints-- - -`is_valid` має містити `valid_in_col = self.valid_in_col(col, num)`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_col\s*=\s*self\.valid_in_col\s*\(\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md deleted file mode 100644 index d2261b1991c..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e33a708a3834f6d4879b.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 6569e33a708a3834f6d4879b -title: Крок 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Перевірте, чи можна вставити число в певну клітинку квадрата 3×3, викликавши `self.valid_in_square(row, col, num)`. - -Призначте результат до `valid_in_square`. - -# --hints-- - -`is_valid` має містити `valid_in_square = self.valid_in_square(row, col, num)`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /valid_in_square\s*=\s*self\.valid_in_square\s*\(\s*row\s*,\s*col\s*,\s*num\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md deleted file mode 100644 index 477f21467fc..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e37ec28e853628f18a86.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: 6569e37ec28e853628f18a86 -title: Крок 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Вставте `valid_in_row`, `valid_in_col` та `valid_in_square` в список і передайте його до функції `all()`. Це перевірить, що всі виклики функцій повертають `True`. - -# --hints-- - -`is_valid` має містити `all([valid_in_row, valid_in_col, valid_in_square])`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "is_valid"); -assert.match(function_body, /all\s*\(\s*\[\s*valid_in_row\s*,\s*valid_in_col\s*,\s*valid_in_square\s*\]\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md deleted file mode 100644 index 6c16ca33c66..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3a134fea0371fa008de.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 6569e3a134fea0371fa008de -title: Крок 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Тепер поверніть результат виклику `all()`. - -# --hints-- - -Поверніть результат виклику `all()`. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+all\s*\(\s*\[\s*(valid_in_)(row|col|square)\s*,\s*\1(?!\2)(row|col|square)\s*,\s*\1(?!\2|\3)(row|col|square)\s*\]\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - ---fcc-editable-region-- - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md deleted file mode 100644 index 3c1399e98f0..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e3d1418b373839a0aa7b.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 6569e3d1418b373839a0aa7b -title: Крок 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Надалі ви працюватимете над методом, який намагатиметься розв’язати судоку на місці, тобто буде змінювати наявну сітку, а не створювати нову. - -Створіть метод `solver` в межах класу `Board`, який приймає один аргумент (`self`, що представляє екземпляр класу). - -# --hints-- - -Метод повинен мати назву `solver`. - -```js -const tCode = code.replace(/\r/g, ""); -const board = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solver = __helpers.python.getDef(board.block_body, "solver"); -assert.exists(solver); -``` - -Додайте параметр `self` до методу. - -```js -const tCode = code.replace(/\r/g, ""); -const { function_parameters } = __helpers.python.getDef(tCode, "solver"); -assert.match(function_parameters, /self/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md deleted file mode 100644 index 2eac56f5738..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e41657a9923953aa7d3c.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 6569e41657a9923953aa7d3c -title: Крок 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Спочатку перевірте, чи залишилися порожні клітинки на сітці. - -Використайте виклик функції `find_empty_cell` на `self`. - -Також використайте моржевий оператор (:=), щоб призначити результат `self.find_empty_cell()` до змінної `next_empty`. - -Використовуючи моржевий оператор, ви можете об’єднати присвоєння та перевірку умови в один рядок, що робить код більш лаконічним та читабельним. - -# --hints-- - -Метод `solver` повинен містити `next_empty := self.find_empty_cell()`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /next_empty\s*:=\s*self\.find_empty_cell\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md deleted file mode 100644 index 5c5ddc1b7f5..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569e481e67f123ad25c5d20.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 6569e481e67f123ad25c5d20 -title: Крок 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Помістіть умову в інструкцію `if` і перевірте, чи вона `None`. - -# --hints-- - -`solver` має містити `if (next_empty := self.find_empty_cell()) is None:`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /if\s*\(\s*next_empty\s*:=\s*self\.find_empty_cell\(\s*\)\s*\)\s*is\s*None:/) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - next_empty := self.find_empty_cell() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md deleted file mode 100644 index 23e28123322..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6b48716b5402504e216.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: 6569f6b48716b5402504e216 -title: Крок 62 -challengeType: 20 -dashedName: step-62 ---- - -# --description-- - -Якщо порожніх клітинок немає (тобто `next_empty` є `None`), головоломку розв’язано. Отже, поверніть `True`. - -# --hints-- - -Поверніть `True` в межах інструкції `if`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s*True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md deleted file mode 100644 index fd827216b47..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f6ebe558bd4136da96cc.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: 6569f6ebe558bd4136da96cc -title: Крок 63 -challengeType: 20 -dashedName: step-63 ---- - -# --description-- - -Створіть блок `else`, щоб обробити випадок, якщо є порожні клітинки, а головоломка нерозв’язана. - -# --hints-- - -`solver` має містити умову `else`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /else:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md deleted file mode 100644 index e6f96e5cf4b..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f70a66ccdc42097ca051.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -id: 6569f70a66ccdc42097ca051 -title: Крок 64 -challengeType: 20 -dashedName: step-64 ---- - -# --description-- - -Якщо порожні клітинки досі є, створіть цикл в межах блоку `else`, який ітерує над числами від `1` до `9` (включно). Цикл має використовувати змінну під назвою `guess`. - -# --hints-- - -Блок `else` повинен містити `for guess in range(1,10):`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "else"); -assert.match(block_body, /for\s+\w+\s+in\s+range\(\s*1\s*,\s*10\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md deleted file mode 100644 index 0adf6d1edfe..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f770fd7dc443d6293095.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: 6569f770fd7dc443d6293095 -title: Крок 65 -challengeType: 20 -dashedName: step-65 ---- - -# --description-- - -Перевірте кожне число (`guess`), чи можна його вставити в поточну порожню клітинку, використавши `self.is_valid(next_empty, guess)`. - -# --hints-- - -Цикл `for` повинен містити `self.is_valid(next_empty, guess)`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "for guess in range(1, 10)"); -assert.match(block_body, /self\.is_valid\(\s*next_empty\s*,\s*guess\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md deleted file mode 100644 index 572ced2a9ee..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7c7f6954944d207775f.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569f7c7f6954944d207775f -title: Крок 66 -challengeType: 20 -dashedName: step-66 ---- - -# --description-- - -Якщо припущення дійсне, то метод оновлює сітку, призначаючи `guess` до клітинки, вказаної в `next_empty`. - -Розпакуйте кортеж `next_empty` на `row, col`. - -# --hints-- - -Внутрішня інструкція `if` повинна містити `row, col = next_empty`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /row\s*,\s*col\s*=\s*next_empty/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md deleted file mode 100644 index 3a9f27262a0..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569f7f2fa74c045e95676ac.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 6569f7f2fa74c045e95676ac -title: Крок 67 -challengeType: 20 -dashedName: step-67 ---- - -# --description-- - -Отримайте доступ до клітинки у вказаному ряді й стовпці сітки та призначте до неї значення `guess`. - -# --hints-- - -Внутрішній блок `if` повинен містити `self.board[row][col] = guess`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*guess/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md deleted file mode 100644 index 8cf62eb8545..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa5b9d507748bf4ec722.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 6569fa5b9d507748bf4ec722 -title: Крок 68 -challengeType: 20 -dashedName: step-68 ---- - -# --description-- - -Залишаючись в межах блоку `if`, рекурсивно викличте `self.solver()`, щоб спробувати розв’язати решту судоку. - -# --hints-- - -Внутрішній блок `if` повинен містити `self.solver()`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.solver\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md deleted file mode 100644 index 61c4516c87d..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fa85d8f9ed49c8dfb37d.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fa85d8f9ed49c8dfb37d -title: Крок 69 -challengeType: 20 -dashedName: step-69 ---- - -# --description-- - -Якщо рекурсивний виклик `self.solver()` повертає `True`, то судоку розв’язано. - -Якщо рекурсивний виклик повертає `True`, поверніть `True` з методу. - -# --hints-- - -Внутрішній блок `if` повинен містити `if self.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /if\s+self\.solver\(\s*\):/); -``` - -`if self.solver():` має містити `return True`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.solver()"); -assert.match(block_body, /return\s+True/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - self.solver() ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md deleted file mode 100644 index c2bf4d46604..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fabbfe1c094ad838ec4c.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 6569fabbfe1c094ad838ec4c -title: Крок 70 -challengeType: 20 -dashedName: step-70 ---- - -# --description-- - -Якщо `self.solver()` повертає `False`, то припущення (`guess`) призвело до нерозв’язного судоку. - -Скасуйте припущення за межами внутрішнього блоку `if`, повернувши клітинці значення `0`. - -# --hints-- - -За межами внутрішнього блоку `if` має бути `self.board[row][col] = 0`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -const {block_body} = __helpers.python.getBlock(function_body, "if self.is_valid(next_empty, guess)"); -assert.match(block_body, /self\.board\s*\[\s*row\s*\]\s*\[\s*col\s*\]\s*=\s*0/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): ---fcc-editable-region-- - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md deleted file mode 100644 index a4a2e2612de..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fbbfee025a4e850b6eaf.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: 6569fbbfee025a4e850b6eaf -title: Крок 71 -challengeType: 20 -dashedName: step-71 ---- - -# --description-- - -Зробіть так, щоб метод повертав `False`, якщо жодне з припущень не веде до розв’язку. - -# --hints-- - -Поверніть `False` в межах зовнішнього циклу `else`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solver"); -assert.match(function_body, /return\s+False/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - ---fcc-editable-region-- - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md deleted file mode 100644 index 0f84062b5ef..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc21837cab5029d82e26.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: 6569fc21837cab5029d82e26 -title: Крок 72 -challengeType: 20 -dashedName: step-72 ---- - -# --description-- - -Поза визначенням класу створіть функцію для друку та розв’язку сітки судоку. - -Назвіть її `solve_sudoku`. Вона має приймати параметр `board`, який є 2D-списком. - -# --hints-- - -Клас `Board` не повинен містити метод `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const {block_body} = __helpers.python.getBlock("\n" + tCode, "class Board"); -const solve = __helpers.python.getDef(block_body, "solve_sudoku"); -assert.notExists(solve); -``` - -Ви повинні мати функцію під назвою `solve_sudoku`. - -```js -const tCode = code.replace(/\r/g, ''); -const solve = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.exists(solve); -``` - -Метод має приймати параметр `board`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_parameters} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_parameters, /board/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md deleted file mode 100644 index f7d05f61f94..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fc63a404c8519d918095.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: 6569fc63a404c8519d918095 -title: Крок 73 -challengeType: 20 -dashedName: step-73 ---- - -# --description-- - -Створіть змінну `gameboard` в межах функції `solve_sudoku` і призначте до неї екземпляр класу `Board`, передавши `board` як аргумент. - -Таким чином сітка отримає заданий початковий стан. - -# --hints-- - -Функція `solve_sudoku` повинна містити `gameboard = Board(board)`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /gameboard\s*=\s*Board\(\s*board\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md deleted file mode 100644 index 87039dd5fb3..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fca3cd7a9f52f322a298.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: 6569fca3cd7a9f52f322a298 -title: Крок 74 -challengeType: 20 -dashedName: step-74 ---- - -# --description-- - -Тепер додайте ще один виклик `print()`, передавши `gameboard` як аргумент, щоб надрукувати поточний стан сітки. - -Додайте виклик `print`, щоб надрукувати наступне: `f'\nPuzzle to solve:\n{gameboard}'`. - -# --hints-- - -Функція `solve_sudoku` повинна містити `print(f'\nPuzzle to solve:\n{gameboard}')`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /print\(\s*f'\\nPuzzle to solve:\\n\{gameboard\}'\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md deleted file mode 100644 index c82ba2f3d07..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd01dab2ea547d98f093.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -id: 6569fd01dab2ea547d98f093 -title: Крок 75 -challengeType: 20 -dashedName: step-75 ---- - -# --description-- - -Створіть інструкцію `if`, яка перевіряє, чи виклик методу `solver()` з об’єкта `gameboard` повертає `True`. - -Потім додайте виклик `print()` до блоку `if`, передавши такий рядок: `'\nSolved puzzle:'`. - -# --hints-- - -Функція `solve_sudoku` повинна містити `if gameboard.solver():`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const ifBlock = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.exists(ifBlock); -``` - -Блок `if` повинен містити `print('\nSolved puzzle:')`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nSolved puzzle:\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md deleted file mode 100644 index 8bcfc078447..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd352879475599d0ec66.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: 6569fd352879475599d0ec66 -title: Крок 76 -challengeType: 20 -dashedName: step-76 ---- - -# --description-- - -Додайте ще один виклик `print`, щоб надрукувати поточний стан сітки. - -# --hints-- - -Інструкція `if` повинна містити `print(gameboard)`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /if\s+gameboard\.solver\s*\(\s*\)\s*/); -assert.match(block_body, /print\s*\(\s*gameboard\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') ---fcc-editable-region-- - if gameboard.solver(): - print('\nSolved puzzle:') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md deleted file mode 100644 index 42e4ddc0b5e..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fd6d3cb95856c9ed2190.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -id: 6569fd6d3cb95856c9ed2190 -title: Крок 77 -challengeType: 20 -dashedName: step-77 ---- - -# --description-- - -Створіть умову `else` та надрукуйте такий рядок в межах нового блоку `else`: `'\nThe provided puzzle is unsolvable.'`. - -# --hints-- - -`solve_sudoku` має містити умову `else`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const elseBlock = __helpers.python.getBlock(function_body, /else\s*/); -assert.exists(elseBlock); -``` - -Блок `else` повинен містити `print('\nThe provided puzzle is unsolvable.')`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -const {block_body} = __helpers.python.getBlock(function_body, /else\s*/); -assert.match(block_body, /print\s*\(\s*("|')\\nThe provided puzzle is unsolvable.\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md deleted file mode 100644 index 5ca21253c6b..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fdc59fe1b658bc9e23a4.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: 6569fdc59fe1b658bc9e23a4 -title: Крок 78 -challengeType: 20 -dashedName: step-78 ---- - -# --description-- - -Зрештою, поверніть екземпляр класу `Board`, який представляє кінцевий стан сітки після спроби розв’язати її. - -# --hints-- - -Функція `solve_sudoku` повинна містити `return gameboard`. - -```js -const tCode = code.replace(/\r/g, ''); -const {function_body} = __helpers.python.getDef(tCode, "solve_sudoku"); -assert.match(function_body, /return\s+gameboard/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - ---fcc-editable-region-- -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md deleted file mode 100644 index f65ce10f846..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/6569fe0fe5b5425a1bb1f534.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -id: 6569fe0fe5b5425a1bb1f534 -title: Крок 79 -challengeType: 20 -dashedName: step-79 ---- - -# --description-- - -Настав час зіграти! - -Головоломку задано в коді. - -Викличте метод `solve_sudoku` з `puzzle` як вхідними даними. - -Тепер ви можете побачити розв’язану головоломку як результат. - -На цьому ви закінчили будувати розв’язувач судоку! - -# --hints-- - -Викличте метод `solve_sudoku` з `puzzle` як вхідними даними. - -```js -assert.match(code, /solve_sudoku\(\s*puzzle\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print(f'\nPuzzle to solve:\n{gameboard}') - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard ---fcc-editable-region-- -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class Board: - def __init__(self, board): - self.board = board - - def __str__(self): - upper_lines = f'\n╔═══{"╤═══"*2}{"╦═══"}{"╤═══"*2}{"╦═══"}{"╤═══"*2}╗\n' - middle_lines = f'╟───{"┼───"*2}{"╫───"}{"┼───"*2}{"╫───"}{"┼───"*2}╢\n' - lower_lines = f'╚═══{"╧═══"*2}{"╩═══"}{"╧═══"*2}{"╩═══"}{"╧═══"*2}╝\n' - board_string = upper_lines - for index, line in enumerate(self.board): - row_list = [] - for square_no, part in enumerate([line[:3], line[3:6], line[6:]], start=1): - row_square = '|'.join(str(item) for item in part) - row_list.extend(row_square) - if square_no != 3: - row_list.append('║') - - row = f'║ {" ".join(row_list)} ║\n' - row_empty = row.replace('0', ' ') - board_string += row_empty - - if index < 8: - if index % 3 == 2: - board_string += f'╠═══{"╪═══"*2}{"╬═══"}{"╪═══"*2}{"╬═══"}{"╪═══"*2}╣\n' - else: - board_string += middle_lines - else: - board_string += lower_lines - - return board_string - - def find_empty_cell(self): - for row, contents in enumerate(self.board): - try: - col = contents.index(0) - return row, col - except ValueError: - pass - return None - - def valid_in_row(self, row, num): - return num not in self.board[row] - - def valid_in_col(self, col, num): - return all( - self.board[row][col] != num - for row in range(9) - ) - - def valid_in_square(self, row, col, num): - row_start = (row // 3) * 3 - col_start=(col // 3) * 3 - for row_no in range(row_start, row_start + 3): - for col_no in range(col_start, col_start + 3): - if self.board[row_no][col_no] == num: - return False - return True - - def is_valid(self, empty, num): - row, col = empty - valid_in_row = self.valid_in_row(row, num) - valid_in_col = self.valid_in_col(col, num) - valid_in_square = self.valid_in_square(row, col, num) - return all([valid_in_row, valid_in_col, valid_in_square]) - - def solver(self): - if (next_empty := self.find_empty_cell()) is None: - return True - else: - for guess in range(1, 10): - if self.is_valid(next_empty, guess): - row, col = next_empty - self.board[row][col] = guess - if self.solver(): - return True - self.board[row][col] = 0 - - return False - -def solve_sudoku(board): - gameboard = Board(board) - print('\nPuzzle to solve:') - print(gameboard) - if gameboard.solver(): - print('\nSolved puzzle:') - print(gameboard) - - else: - print('\nThe provided puzzle is unsolvable.') - return gameboard - -puzzle = [ - [0, 0, 2, 0, 0, 8, 0, 0, 0], - [0, 0, 0, 0, 0, 3, 7, 6, 2], - [4, 3, 0, 0, 0, 0, 8, 0, 0], - [0, 5, 0, 0, 3, 0, 0, 9, 0], - [0, 4, 0, 0, 0, 0, 0, 2, 6], - [0, 0, 0, 4, 6, 7, 0, 0, 0], - [0, 8, 6, 7, 0, 4, 0, 0, 0], - [0, 0, 0, 5, 1, 9, 0, 0, 8], - [1, 7, 0, 0, 0, 6, 0, 0, 5] -] - -solve_sudoku(puzzle) -``` - diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/66068fb0bfddba2b7977eb60.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/66068fb0bfddba2b7977eb60.md index 58d8650f638..7088dac597c 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/66068fb0bfddba2b7977eb60.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/66068fb0bfddba2b7977eb60.md @@ -1,24 +1,24 @@ --- id: 66068fb0bfddba2b7977eb60 -title: Step 1 +title: Крок 1 challengeType: 20 dashedName: step-1 --- # --description-- -In this project, you will learn about classes and objects by building a sudoku puzzle solver. +У цьому проєкті ви дізнаєтесь про класи та об’єкти, створивши розв’язувач судоку. -In Python, a class is a blueprint for creating objects. Objects created from a class are instances of that class. You can create a class using this syntax: +Клас в Python — це основа для створення об’єктів. Об’єкти, створені з класу, є екземплярами цього класу. Клас можна створити за допомогою такого синтаксису: ```py class ClassName: pass ``` -Where `class` is the keyword required to define the class and `ClassName` is the name of the class, written by convention in *PascalCase*. +Де `class` — це ключове слово, необхідне для визначення класу, а `ClassName` — це ім’я класу, написане за конвенцією у *ПаскалевомуРегістрі*. -Begin by creating a `Board` class. +Почніть зі створення класу `Board`. # --hints-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md index 14036be277d..9e72c56ba3f 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-classes-and-objects-by-building-a-sudoku-solver/660ac35d55a15d81afdedd76.md @@ -20,7 +20,12 @@ Inside the `for` loop, declare a variable `row_str` and assign it a list compreh You should assign a list comprehension that iterates over `row` to the `row_str` variable. ```js -({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str").find_comp_iters()[0].is_equivalent("row")`)) }) +({ test: () => (runPython(` +import ast +var = _Node(_code).find_class("Board").find_function("__str__").find_for_loops()[0].find_bodies()[0].find_variable("row_str") +assert var.find_comp_iters()[0].is_equivalent("row"), "You should iterate over row" +assert isinstance(var.tree.value, ast.ListComp), "It's not a list comprehension" +`)) }) ``` The list comprehension assigned to the `row_str` variable should use `i` as iteration variable. diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md index 3151f1dcbeb..6f438a3b836 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658212ba98182f3e855e85f9.md @@ -13,7 +13,7 @@ dashedName: step-1 # --hints-- -Оголосіть функцію під назвою `add_expense`. +You should use the `def` keyword to declare a function named `add_expense`. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md index 44c63de14d0..136e12ac5ce 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821c1c40ccac44adf38e6b.md @@ -7,13 +7,13 @@ dashedName: step-2 # --description-- -Список у Python — це вбудований тип даних, який дозволяє зберігати багато елементів в одній структурі даних. Щоб створити список в Python, розмістіть елементи в квадратних дужках `[]`, відокремлюючи їх комами. +Список у Python — це вбудований тип даних, який дозволяє зберігати багато елементів в одній структурі даних. In Python, you create a list by putting items inside square brackets (`[]`), with each item separated from the following one by a comma. ```py numbers = [1, 2, 3, 4] ``` -Створіть порожній список під назвою `expenses`. Ви використовуватимете його, щоб зберігати витрати. +Use a pair of square brackets to create an empty list named `expenses`. Ви використовуватимете його, щоб зберігати витрати. # --hints-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md index d4a700657d9..47f8e0d7bef 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65821fcc010c3245718f2a06.md @@ -7,21 +7,29 @@ dashedName: step-3 # --description-- -Параметром `expenses` функції `add_expense` буде список витрат. Важливо мати можливість додавати елементи в кінець списку. Для цього можна використати метод списку `.append()`: +Параметром `expenses` функції `add_expense` буде список витрат. Важливо мати можливість додавати елементи в кінець списку. For that you'll use the `.append()` list method: ```py my_list = [2, 4, 7] my_list.append(3) ``` -Після додавання `3` у прикладі вище, `my_list` зміниться на `[2, 4, 7, 3]`. Замініть `pass` на виклик методу `.append()` на списку `expenses`. Наразі не передавайте жодних аргументів до `.append()`. +In the example above, after appending `3`, `my_list` would be `[2, 4, 7, 3]`. + +Replace `pass` with a call to the `.append()` method on the `expenses` list. Don't pass any arguments to `.append()` for now. # --hints-- -Функція повинна містити `expenses.append()`. +You should have `expenses.append()` in your function. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\)/m) +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append()")`)) }) +``` + +You should not have `pass` in your function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("add_expense").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md index 241dbff194a..1c909a2e76d 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822308ded1ba4632f66aa3.md @@ -7,7 +7,7 @@ dashedName: step-4 # --description-- -Словник — ще один вбудований тип даних у Python. Словник — це набір даних у вигляді пари *ключ*-*значення*. Словники визначають за допомогою фігурних дужок `{}`, які містять пари ключ-значення, розділені комами. Після кожного ключа стоїть двокрапка `:` та значення: +Словник — ще один вбудований тип даних у Python. Словник — це набір даних у вигляді пари *ключ*-*значення*. Dictionaries are defined with curly braces (`{}`) and they contain key-value pairs separated by commas. Each key is followed by a colon (`:`) and the value: ```py {'amount': 50.0, 'category': 'Food'} @@ -19,10 +19,20 @@ dashedName: step-4 # --hints-- -Функція повинна містити `expenses.append({'amount': amount})`. +You should pass a dictionary as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) +`)) }) +``` + +You should pass `{'amount': amount}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md index e65931be5a5..fde4777b9e9 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658225d560369446ece5518b.md @@ -11,10 +11,20 @@ dashedName: step-5 # --hints-- -Код повинен містити `expenses.append({'amount': amount, 'category': category})`. +You should add a second key-value pair to the dictionary you are passing as the argument to the `.append()` method. ```js -assert.match(code, /^\s+expenses\.append\s*\(\s*\{\s*("|')amount\1\s*:\s*amount\s*,\s*("|')category\2\s*:\s*category\s*\}\s*\)/m) +({ test: () => assert(runPython(` +import ast +node = _Node(_code).find_function("add_expense").find_calls("append")[0].find_call_args() +len(node) == 1 and isinstance(node[0].tree, ast.Dict) and len(node[0].tree.keys) == 2 +`)) }) +``` + +You should pass `{'amount': amount, 'category': category}` as the argument to the `.append()` method. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("add_expense").has_stmt("expenses.append({'amount': amount, 'category': category})")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md index b47eafe12df..957a51bbe51 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582267ef39f5047411c1743.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -Почніть з визначення функції під назвою `print_expenses`, яка приймає параметр `expenses`. Пізніше ця функція використовуватиметься для відтворення всіх витрат зі списку. +Next, define a function named `print_expenses` that takes one parameter `expenses`. Пізніше ця функція використовуватиметься для відтворення всіх витрат зі списку. Заповніть тіло нової функції інструкцією `pass`. diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md index 19bcbff7180..1a0f4f67162 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822773f4c60a479ec89f66.md @@ -11,10 +11,22 @@ dashedName: step-7 # --hints-- -Функція `print_expenses` повинна містити `for expense in expenses:`. Не забудьте використати `pass` в межах тіла циклу. +You should create a `for` loop that iterates over `expenses` in your `print_expenses` function. Не забудьте використати `pass` в межах тіла циклу. ```js -({ test: () => assert.match(code, /for\s+expense\s+in\s+expenses\s*:/ ) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_iter().is_equivalent("expenses")`)) }) +``` + +You should use `expense` as the loop variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_for_vars().is_equivalent("expense")`)) }) +``` + +You should have `pass` only inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md index 60a786b9133..6ac1b68626b 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822934c8a0454803e3ef12.md @@ -9,14 +9,20 @@ dashedName: step-8 Далі ви відтворите деталі всіх витрат. -Замініть `pass` на виклик `print()` в межах циклу `for` та передайте до нього наступний f-рядок: `f'Amount: {expense}, Category: {expense}'`. Наразі залиште заповнювачі порожніми. +Inside the `for` loop, replace `pass` with a `print()` call and pass it the following f-string: `f'Amount: {expense}, Category: {expense}'`. # --hints-- -Цикл `for` повинен містити `print(f'Amount: {expense}, Category: {expense}')`. +You should print `f'Amount: {expense}, Category: {expense}'` in your `for` loop. ```js -({ test: () => assert.match(code, /^\s+print\s*\(\s*f("|')Amount: \{\s*expense\s*\}, Category: \{\s*expense\s*\}\1\s*\)/m) }) +({ test: () => assert(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].has_call("print(f'Amount: {expense}, Category: {expense}')")`)) }) +``` + +You should not have `pass` inside your loop body. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("print_expenses").find_for_loops()[0].find_bodies()[0].has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md index 54013a59a03..226028848ca 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65822bd82d708c4895080c35.md @@ -7,7 +7,12 @@ dashedName: step-9 # --description-- -Ви можете отримати доступ до значень в словнику через ключі. Для цього використайте дужкову нотацію та помістіть ключ між квадратними дужками: +In Python, an important thing to know is that the same type of quote used to define a string cannot be used inside it. For example, the string `'I'm a string!'` is not valid. To use the single quote inside that string you should either: + +- Escape the quote by prepending a backlash to it: `'I\'m a string!'` +- Or use double quotes to define the string: `"I'm a string!"` (preferred). + +Ви можете отримати доступ до значень в словнику через ключі. You need to use bracket notation and include the key between the square brackets: ```py my_dict = {'amount': 50.0, 'category': 'Food'} diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md index 11a6d1165df..cbcd946d724 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823040bdb32949d4c1a96f.md @@ -7,11 +7,13 @@ dashedName: step-10 # --description-- -Вам знадобиться функція для підрахунку загальної суми витрат. Визначте функцію під назвою `total_expenses`, яка приймає один параметр `expenses`. Наразі заповніть тіло функції інструкцією `pass`. +You will need a function to calculate the total amount of expenses. + +Define a function named `total_expenses` that takes one parameter `expenses`. Fill the function body with a `pass` statement for now. # --hints-- -Визначте функцію під назвою `total_expenses`. +You should define a function named `total_expenses`. ```js ({ test: () => assert(runPython(` @@ -21,7 +23,7 @@ dashedName: step-10 }) ``` -Функція `total_expenses` має приймати параметр `expenses`. +Your `total_expenses` function should take a single `expenses` parameter. ```js ({ test: () => assert(runPython(` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md index 6afa6c3e107..6fcc7599a83 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582324b5d37fe4b622bc3c0.md @@ -13,14 +13,22 @@ dashedName: step-11 lambda x: expr ``` -`x` в прикладі вище є параметром, який потрібно використати у виразі `expr`. Створіть змінну `test` та призначте до неї лямбда-функцію, яка приймає параметр `x` та повертає `x * 2`. +In the example above, `x` represents a parameter to be used in the expression `expr`, and it acts just like any parameter in a traditional function. `expr` is the expression that gets evaluated and returned when the lambda function is called. + +Create a variable named `test` and assign it a lambda function that takes an `x` parameter and returns `x * 2`. # --hints-- -Код повинен містити `test = lambda x: x * 2`. +You should declare a variable named `test`. ```js -({ test: () => assert.match(code,/^test\s*=\s*lambda\s+x\s*:\s*x\s*\*\s*2/m)}) +({ test: () => assert(runPython(`_Node(_code).has_variable("test")`))}) +``` + +You should assign `lambda x: x * 2` to your `test` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_variable("test").is_equivalent("test = lambda x: x * 2")`))}) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md index 96a2e892111..c11f9055dd0 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823634a308cb4d6bcc5fa6.md @@ -13,9 +13,11 @@ dashedName: step-13 map(lambda x: x * 2, [1, 2, 3]) ``` +The function to execute is passed as the first argument, and the iterable is passed as the second argument. + Результатом прикладу вище буде `[2, 4, 6]`, де кожен елемент списку, переданого до `map()`, було подвоєно лямбда-функцією. -Змініть виклик `print()`, щоб надрукувати результат виклику `map()`, де першим аргументом є `test`, а другим — `[2, 3, 5, 8]`. +Змініть виклик `print()`, щоб надрукувати результат виклику `map()`, де першим аргументом є `test`, а другим — `[2, 3, 5, 8]`. You won't be able to see a readable output yet. # --hints-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md index df223c0b2de..fd4120bbacc 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658238f7604f154ea9a23e1e.md @@ -1,6 +1,6 @@ --- id: 658238f7604f154ea9a23e1e -title: Крок 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- @@ -9,7 +9,7 @@ dashedName: step-15 Функція `sum()` повертає суму елементів ітерованого об’єкта, який передається як аргумент. Ви використовуватимете `sum()` разом із функціями `map()` та `lambda`, щоб отримати загальну суму витрат. -Наразі створіть невеликий текст та змініть наявний виклик `print()`, передавши `sum(map(test, [2, 3, 5, 8]))` як аргумент. +For now, make a little test and modify your current `print()` call replacing the `list()` call with a call to the `sum()` function passing it the current `map()` call as the argument. # --hints-- @@ -36,7 +36,7 @@ def total_expenses(expenses): --fcc-editable-region-- test = lambda x: x * 2 -print(map(test, [2, 3, 5, 8])) +print(list(map(test, [2,3,5,8]))) --fcc-editable-region-- expenses = [] diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md index cad4729cb10..b9205d5db17 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823b0167fd894f4a7ea60a.md @@ -1,28 +1,22 @@ --- id: 65823b0167fd894f4a7ea60a -title: Крок 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- # --description-- -Далі ви будете реалізовувати таку ж логіку до функції `total_expenses`. +Next, you are going to implement the same logic within the `total_expenses` function. Наразі видаліть функцію `test` та виклик `print()`. # --hints-- -Видаліть змінну `test`. +You should delete your `test` variable and the related `print()` call. ```js -({ test: () => assert.notMatch(code, /test\s*=/) }) -``` - -Видаліть виклик `print(sum(map(test, [2, 3, 5, 8])))`. - -```js -({ test: () => assert.notMatch(code, /print\s*\(\s*sum/) }) +({ test: () => assert.isFalse(runPython(`_Node(_code).has_variable("test")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md index 7e34f9ab162..af93b0e12fc 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823bbbdb4eaa4f9d20a0fb.md @@ -1,27 +1,28 @@ --- id: 65823bbbdb4eaa4f9d20a0fb -title: Крок 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- # --description-- -Замініть `pass` на функцію `lambda` в межах функції `total_expenses`. Використайте `expense` як параметр та поверніть значення ключа `'amount'` в словнику `expense`. +In the `total_expenses` function, you'll now integrate a lambda function. Replace `pass` with a lambda function that has `expense` as its parameter. + +`expense` is expected to be a dictionary, and your lambda function should return the value of the `'amount'` key in the `expense` dictionary. # --hints-- -Функція `total_expenses` повинна містити `lambda expense: expense['amount']`. +You should create a `lambda` function that uses the parameter `expense` and returns `expense['amount']` in your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_stmt("lambda expense: expense['amount']")`)) }) +``` + +You should not have `pass` in your `total_expenses` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("total_expenses").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md index cc6e7d0685d..40ddbd8844d 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823cfc74aa564ffc460489.md @@ -1,6 +1,6 @@ --- id: 65823cfc74aa564ffc460489 -title: Крок 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- @@ -11,17 +11,22 @@ dashedName: step-18 # --hints-- -Код повинен містити `map(lambda expense: expense['amount'], expenses)`. +You should call the `map()` function inside the `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("total_expenses").find_calls("map")) == 1`)) }) +``` + +You should pass your `lambda` function as the first argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[0].is_equivalent("lambda expense: expense['amount']")`)) }) +``` + +You should pass the `expenses` list as the second argument to the `map()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").find_calls("map")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md index 28aac9c3a6c..98f4c5d581e 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823dde36392f505a39f7c7.md @@ -1,6 +1,6 @@ --- id: 65823dde36392f505a39f7c7 -title: Крок 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- @@ -11,17 +11,10 @@ dashedName: step-19 # --hints-- -Поверніть `sum(map(lambda expense: expense['amount'], expenses))` з функції `total_expenses`. +You should call the `sum()` function passing it your current `map()` call as the argument and return the result from your `total_expenses` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "total_expenses"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+sum\s*\(\s*map\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')amount\1\s*\]\s*,\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("total_expenses").has_return("sum(map(lambda expense: expense['amount'], expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md index 0f06c30c190..7eda460605a 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823e87c9741750a22085a7.md @@ -1,6 +1,6 @@ --- id: 65823e87c9741750a22085a7 -title: Крок 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index f39e00168df..25b09e31024 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -1,27 +1,26 @@ --- id: 65823ff0d4b991510fade1a8 -title: Крок 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- # --description-- -Замініть `pass` на функцію `lambda` в межах функції `filter_expenses_by_category`. Використайте `expense` як параметр і поверніть порівняння між значенням ключа `'category'` словника `expense` та `category`. +Замініть `pass` на функцію `lambda` в межах функції `filter_expenses_by_category`. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -Функція `filter_expenses_by_category` повинна містити `lambda expense: expense['category'] == category`. +You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) +``` + +You should not have `pass` inside the `filter_expenses_by_category` function. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_pass()`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md index 0a90b3cef7e..4b5abc12804 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824111a09164518320088d.md @@ -1,6 +1,6 @@ --- id: 65824111a09164518320088d -title: Крок 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- @@ -13,23 +13,30 @@ dashedName: step-22 filter(my_function, my_list) ``` -`filter()` повертає ітератор, до якого входять елементи `my_list`, для яких `my_function` повертає `True`. Ітератор — це спеціальний об’єкт, який дозволяє виконати ітерацію над елементами колекції (наприклад, списку). +`filter()` takes a function as its first argument and an iterable as its second argument. It returns an iterator, which is a special object that enables you to iterate over the elements of a collection, like a list. + +The result of the example above is an iterator containing the elements of `my_list` for which `my_function` returns `True`. Викличте `filter()` в межах функції `filter_expenses_by_category`, передавши функцію `lambda`, яку ви написали в попередньому кроці, як перший аргумент та список `expenses` як другий аргумент. # --hints-- -Функція `filter_expenses_by_category` повинна містити `filter(lambda expense: expense['category'] == category, expenses)`. +You should call `filter()` inside the `filter_expenses_by_category` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")) == 1`)) }) +``` + +You should pass `lambda expense: expense['category'] == category` as the first argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[0].is_equivalent("lambda expense: expense['category'] == category")`)) }) +``` + +You should pass `expenses` as the second argument to the `filter()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").find_calls("filter")[0].find_call_args()[1].is_equivalent("expenses")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md index 7e139de4244..993dd42967b 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658244fdf4b0265334711664.md @@ -1,6 +1,6 @@ --- id: 658244fdf4b0265334711664 -title: Крок 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- @@ -14,14 +14,7 @@ dashedName: step-23 Поверніть результат виклику `filter()` з функції `filter_expenses_by_category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "filter_expenses_by_category"); - const {function_body} = foo; - assert(function_body.match(/^\s+return\s+filter\s*\(\s*lambda\s+expense\s*:\s*expense\s*\[\s*("|')category\1\s*\]\s*==\s*category\s*,\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_return("filter(lambda expense: expense['category'] == category, expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md index 28f70f18616..6cc6ced1194 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824561f3478e5371a33ae5.md @@ -1,6 +1,6 @@ --- id: 65824561f3478e5371a33ae5 -title: Крок 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- @@ -19,6 +19,8 @@ dashedName: step-24 ({ test: () => assert(runPython(` import inspect inspect.isfunction(main) + sig = str(inspect.signature(main)) + sig == '()' `)) }) ``` @@ -26,12 +28,7 @@ dashedName: step-24 Перемістіть список `expenses` до тіла функції `main()`. ```js -({ test: () => assert(runPython(` - import inspect - sig = str(inspect.signature(main)) - sig == '()' - `)) -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_body().is_equivalent("expenses = []")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md index 14d6211deee..562b4a5f30a 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658246c28575d653d1f89b59.md @@ -1,6 +1,6 @@ --- id: 658246c28575d653d1f89b59 -title: Крок 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- @@ -18,30 +18,16 @@ while condition: # --hints-- -Функція `main()` повинна містити `while True:`. +You should create a `while` loop using `True` as the condition within your `main()` function. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+while\s+True\s*:/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_conditions()[0].is_equivalent("True")`)) }) ``` -Цикл `while` повинен містити `print('\nExpense Tracker')`. +You should print `'\nExpense Tracker'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')\\nExpense\s*Tracker\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print")[0].is_equivalent("print('\\\\nExpense Tracker')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md index c54d9718540..14532fea7a1 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824872894f59546e3084e2.md @@ -1,6 +1,6 @@ --- id: 65824872894f59546e3084e2 -title: Крок 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- @@ -9,21 +9,18 @@ dashedName: step-26 Цикл `while`, який ви створили в попередньому кроці, є нескінченним циклом, що дозволить програмі постійно показувати параметри меню, доки користувач не вирішить вийти. -Додайте ще один виклик після виклику `print()`, щоб надрукувати рядок `'1. Add an expense'`. +After the `print()` call, add another `print()` call to print the string `'1. Add an expense'`. # --hints-- -Цикл `while` повинен містити `print('1. Add an expense')`. +You should print `'1. Add an expense'` within your `while` loop after the existing `print()` call. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')1\.\sAdd\san\sexpense\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md index 2ded09dffe2..12cfc1c29a2 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824a1b16631c54fa524154.md @@ -1,6 +1,6 @@ --- id: 65824a1b16631c54fa524154 -title: Крок 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- @@ -11,17 +11,14 @@ dashedName: step-27 # --hints-- -Цикл `while` повинен містити `print('2. List all expenses')`. +You should print `'2. List all expenses'` in your `while` loop after the existing `print()` calls. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')2\.\sList\sall\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md index 08eb6c0a0f5..92a76ae01ba 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824c7b4e2da85597693dcf.md @@ -1,53 +1,44 @@ --- id: 65824c7b4e2da85597693dcf -title: Крок 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- # --description-- -Надайте інші параметри меню, надрукувавши наступні три рядки в межах циклу `while`: `'3. Show total expenses'`, `'4. Filter expenses by category'` та `'5. Exit'`. +Надайте інші параметри меню, надрукувавши наступні три рядки в межах циклу `while`: `'3. Show total expenses'`, `'4. Filter expenses by category'` та `'5. Exit'`. Keep adding the `print()` calls in order. # --hints-- Цикл `while` повинен містити `print('3. Show total expenses')`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')3\.\sShow\stotal\sexpenses\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` Цикл `while` повинен містити `print('4. Filter expenses by category')`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')4\.\sFilter\sexpenses\sby\scategory\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` Цикл `while` повинен містити `print('5. Exit')`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+print\s*\(\s*("|')5\.\sExit\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(` +call_lst = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_calls("print") +test_lst = ["print('\\\\nExpense Tracker')", "print('1. Add an expense')", "print('2. List all expenses')", "print('3. Show total expenses')", "print('4. Filter expenses by category')", "print('5. Exit')"] +all(call_lst[n].is_equivalent(i) for n, i in enumerate(test_lst)) +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md index 6c5a0287fbe..0d3db6410f0 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65824dfdb6815d563b2d3256.md @@ -1,6 +1,6 @@ --- id: 65824dfdb6815d563b2d3256 -title: Крок 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- @@ -13,17 +13,18 @@ dashedName: step-29 # --hints-- -Цикл `while` повинен містити `choice = input('Enter your choice: ')`. +You should declare a variable named `choice` within your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+choice\s*=\s*input\s*\(\s*("|')Enter\syour\schoice:\s\1\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].has_variable("choice") +`)) }) +``` + +You should assign the result of the `input()` function, with the string `'Enter your choice: '` as its argument, to your `choice` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_variable("choice").is_equivalent("choice = input('Enter your choice: ')") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md index c2f9df38d6a..3210b6aeea8 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582507654b3ed5712341382.md @@ -1,6 +1,6 @@ --- id: 6582507654b3ed5712341382 -title: Крок 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- @@ -15,30 +15,27 @@ dashedName: step-30 # --hints-- -Цикл `while` повинен містити `if choice == '1':`: +You should create an `if` statement that checks if `choice` is equal to `'1'` in your `while` loop. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[0] +cond.is_equivalent("choice == '1'") or cond.is_equivalent("'1' == choice") +`)) }) ``` -Тіло інструкції `if` повинне містити `amount = input()`: +You should declare a variable named `amount` in your `if` statement body. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("amount") +`)) }) +``` + +You should assign an empty `input()` call to your `amount` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input()") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md index e10297e9483..7cf62497372 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658252f6b1526d57b103d48a.md @@ -1,6 +1,6 @@ --- id: 658252f6b1526d57b103d48a -title: Крок 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- @@ -13,17 +13,11 @@ dashedName: step-31 # --hints-- -Інструкція `if` повинна містити `amount = input('Enter amount: ')`. +You should pass `'Enter amount: '` to the `input()` call assigned to the `amount` variable. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*input\s*\(\s*("|')Enter amount:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = input('Enter amount: ')") +`)) }) ``` # --seed-- @@ -44,7 +38,6 @@ def total_expenses(expenses): def filter_expenses_by_category(expenses, category): return filter(lambda expense: expense['category'] == category, expenses) ---fcc-editable-region-- def main(): expenses = [] while True: @@ -56,7 +49,7 @@ def main(): print('5. Exit') choice = input('Enter your choice: ') - +--fcc-editable-region-- if choice == '1': amount = input() --fcc-editable-region-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md index ead52883a2a..dd98e367036 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658254db6e12485a48130f57.md @@ -1,6 +1,6 @@ --- id: 658254db6e12485a48130f57 -title: Крок 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- @@ -13,17 +13,11 @@ dashedName: step-32 # --hints-- -Інструкція `if` повинна містити `amount = float(input('Enter amount: '))`. +You should pass `input('Enter amount: ')` to the `float()` function in the assignment of `amount`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("amount").is_equivalent("amount = float(input('Enter amount: '))") +`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md index 85d7855442f..0249ed79c87 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658255d5f955175b270f251d.md @@ -1,27 +1,26 @@ --- id: 658255d5f955175b270f251d -title: Крок 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- # --description-- -Створіть змінну `category` в межах інструкції `if`, щоб зберегти категорії витрат. Призначте до неї `input('Enter category: ')`. +Inside your `if` statement, create a variable named `category` to store the expense category. Assign it a call to `input()` and use the `'Enter category: '` as the argument. # --hints-- -Інструкція `if` повинна містити `category = input('Enter category: ')`. +You should declare a variable named `category` in your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_variable("category")`)) }) +``` + +You should assign `input('Enter category: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_variable("category").is_equivalent("category = input('Enter category: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md index 0dd7fa68a93..dfe25052802 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582575b8089f85b8b92d7c8.md @@ -1,13 +1,13 @@ --- id: 6582575b8089f85b8b92d7c8 -title: Крок 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- # --description-- -Отримавши деталі витрат, потрібно викликати функцію `add_expense`, щоб додати нові витрати до списку `expenses`. +Once you have the expense details, you need to call the `add_expense` function to add the new expense to the `expenses` list. Після отримання `amount` та `category` за допомогою `input()`, викличте функцію `add_expense`, передаючи три аргументи: `expenses`, `amount` та `category`. @@ -17,17 +17,22 @@ dashedName: step-34 # --hints-- -Інструкція `if` повинна містити `add_expense(expenses, amount, category)`. +You should call the `add_expense()` function within your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+if\s+choice\s*==\s*("|')1\1\s*:\s*amount\s*=\s*float\s*\(\s*input\s*\(\s*("|')Enter\samount:\s\2\s*\)\s*\)\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory:\s\3\s*\)\s*add_expense\s*\(\s*expenses\s*,\s*amount\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].find_calls("add_expense")) == 1`)) }) +``` + +You should pass three arguments to your `add_expense()` call: `expenses`, `amount`, and `category`. The order matters. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].has_call("add_expense(expenses, amount, category)")`)) }) +``` + +Your `add_expense()` call should come after the assignment of `amount` and `category`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[0].is_equivalent("amount = float(input('Enter amount: '))\\ncategory = input('Enter category: ')\\nadd_expense(expenses, amount, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md index b0b79983f5f..fb5aa8ffc45 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/658258c0e5fbe85c14c060cf.md @@ -1,42 +1,31 @@ --- id: 658258c0e5fbe85c14c060cf -title: Крок 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- # --description-- -Щоб перерахувати всі витрати, можна використати інструкцію `elif` після інструкції `if`. Інструкція `elif` перевіряє додаткові умови та працює лише тоді, коли розміщена після інструкції `if`. +To list all expenses, you can use an `elif` clause after an `if` statement. Інструкція `elif` перевіряє додаткові умови та працює лише тоді, коли розміщена після інструкції `if`. -Створіть інструкцію `elif`, щоб перевірити, чи вибір користувача дорівнює рядку `2`. Надрукуйте рядок `'\nAll Expenses:'` в межах інструкції `elif`. +Create an `elif` clause to check if the user's choice equals the string `'2'`. Inside the `elif` clause, print the string `'\nAll Expenses:'`. # --hints-- -Інструкція `elif choice == '2':` має розташовуватись після інструкції `if`. +You should create an `elif` clause that checks that `choice` is equal to `'2'` after your `if` statement. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[1] +cond.is_equivalent("choice == '2'") or cond.is_equivalent("'2' == choice") +`)) }) ``` -Інструкція `elif` повинна містити `print('\nAll Expenses:')`. +You should print `'\nAll Expenses:'` inside your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md index 1b56c2098a1..2596576ef67 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825a9520a0795c8afbef50.md @@ -1,6 +1,6 @@ --- id: 65825a9520a0795c8afbef50 -title: Крок 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- @@ -11,17 +11,16 @@ dashedName: step-36 # --hints-- -Інструкція `elif` повинна містити `print_expenses(expenses)`. +You should call the `print_expenses()` function within your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')2\1\s*:\s*print\s*\(\s*("|')\\nAll\sExpenses:\2\s*\)\s*print\s*_expenses\s*\(\s*expenses\s*\)/m)); - } -}) +({ test: () => assert(runPython(`len(_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].find_calls("print_expenses")) == 1`)) }) +``` + +You should pass the `expenses` list as the argument to your `print_expenses()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print_expenses(expenses)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md index ad714acff3c..b88ed559515 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825b758fe85a5cebabc8c5.md @@ -1,6 +1,6 @@ --- id: 65825b758fe85a5cebabc8c5 -title: Крок 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- @@ -13,30 +13,19 @@ dashedName: step-37 # --hints-- -Код повинен містити `elif choice == '3':`. +You should create an `elif` clause that checks if `choice == '3'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert.match(function_body, /\s+elif\s+choice\s*==\s*("|')3\1\s*:/); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[2] +cond.is_equivalent("choice == '3'") or cond.is_equivalent("'3' == choice") +`)) }) ``` -Інструкція `elif` повинна містити `print('\nTotal Expenses: ', total_expenses(expenses))`. +You should print `'\nTotal Expenses: ', total_expenses(expenses)` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')3\1\s*:\s*print\s*\(\s*("|')\\nTotal\sExpenses:\s\2\s*,\s*total_expenses\s*\(\s*expenses\s*\)\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[2].has_call("print('\\\\nTotal Expenses: ', total_expenses(expenses))")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md index ccc16172d97..f418abf24a8 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825cda2668995d5168e37c.md @@ -1,40 +1,35 @@ --- id: 65825cda2668995d5168e37c -title: Крок 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- # --description-- -Створіть ще одну інструкцію `elif`, яка перевіряє, чи `choice == '4'`. Створіть змінну `category` в межах нової інструкції `elif` та призначте до неї `input('Enter category to filter: ')`, щоб відфільтрувати категорії витрат. +Create another `elif` clause that checks if `choice == '4'`. Створіть змінну `category` в межах нової інструкції `elif` та призначте до неї `input('Enter category to filter: ')`, щоб відфільтрувати категорії витрат. # --hints-- -Код повинен містити `elif choice == '4':`. +You should create an `elif` clause that checks if `choice == '4'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[3] +cond.is_equivalent("choice == '4'") or cond.is_equivalent("'4' == choice") +`)) }) ``` -Нова інструкція `elif` повинна містити `category = input('Enter category to filter: ')`. +You should declared a variable named `category` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("category")`)) }) +``` + +You should assign `input('Enter category to filter: ')` to your `category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("category").is_equivalent("category = input('Enter category to filter: ')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md index 29ad091f09e..42f08fcb5f4 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65825e96b5db5f5dee6bf57c.md @@ -1,6 +1,6 @@ --- id: 65825e96b5db5f5dee6bf57c -title: Крок 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- @@ -11,17 +11,10 @@ dashedName: step-39 # --hints-- -Надрукуйте `f'\nExpenses for {category}:'` в інструкції `elif`. +You should print `f'\nExpenses for {category}:'` after the assignment of `category`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md index f87872edeca..a659ea92a3e 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582601b2987045e8e7da994.md @@ -1,6 +1,6 @@ --- id: 6582601b2987045e8e7da994 -title: Крок 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- @@ -11,17 +11,22 @@ dashedName: step-40 # --hints-- -Інструкція `elif` повинна містити `expenses_from_category = filter_expenses_by_category(expenses, category)`. +You should declare a variable named `expenses_from_category` in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_variable("expenses_from_category")`)) }) +``` + +You should call `filter_expenses_by_category()` passing `expenses` and `category` as the arguments and assign it to your `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].find_variable("expenses_from_category").is_equivalent("expenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) +``` + +Your `expenses_from_category` variable should come after the `print()` call. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md index ff5a6b78c16..4801aa6d338 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582622cb6c11a5f4c5d79b4.md @@ -1,27 +1,26 @@ --- id: 6582622cb6c11a5f4c5d79b4 -title: Крок 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- # --description-- -Передайте ітератор `expenses_from_category` до виклику `print_expenses` в межах інструкції `elif`. +Still within the `elif` clause, pass the `expenses_from_category` iterator to a `print_expenses` call. # --hints-- -Код повинен містити `print_expenses(expenses_from_category)`. +You should call `print_expenses()` passing `expenses_from_category` as the argument in your `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')4\1\s*:\s*category\s*=\s*input\s*\(\s*("|')Enter\scategory\sto\sfilter:\s\2\s*\)\s*print\s*\(\s*f("|')\\nExpenses for \{\s*category\s*\}:\3\s*\)\s*expenses_from_category\s*=\s*filter_expenses_by_category\s*\(\s*expenses\s*,\s*category\s*\)\s*print_expenses\s*\(\s*expenses_from_category\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].has_call("print_expenses(expenses_from_category)")`)) }) +``` + +Your `print_expenses()` call should come after the `expenses_from_category` variable. + +```js +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[3].is_equivalent("category = input('Enter category to filter: ')\\nprint(f'\\\\nExpenses for {category}:')\\nexpenses_from_category = filter_expenses_by_category(expenses, category)\\nprint_expenses(expenses_from_category)")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md index a98456f4c35..911a95cf962 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md @@ -1,42 +1,31 @@ --- id: 6582687859366a618424d84b -title: Крок 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- # --description-- -Щоб забезпечити вихід з програми, використайте ще одну інструкцію `elif`, щоб перевірити, чи `choice` дорівнює рядку `'5'`. +To provide a way to exit the program, use another `elif` clause to check if `choice` equals the string `'5'`. -Надрукуйте рядок `'Exiting the program.'` в межах нової інструкції `elif`, щоб відтворити, що програма завершує своє виконання. +Inside the new `elif` clause, print the string `'Exiting the program.'` to show that the program is terminating its execution. # --hints-- -Код повинен містити `elif choice == '5':`. +You should create an `elif` clause that checks if `choice == '5'`. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:/m)); - } -}) +({ test: () => assert(runPython(` +cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4] +cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice") +`)) }) ``` -Надрукуйте `'Exiting the program.'` в новій інструкції `elif`. +You should print `'Exiting the program.'` in your new `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+elif\s+choice\s*==\s*("|')5\1\s*:\s*print\s*\(\s*("|')Exiting\sthe\sprogram.\2\s*\)/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md index 8bc0ed1f618..712c3072018 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826a6e9d189a623141c726.md @@ -1,27 +1,20 @@ --- id: 65826a6e9d189a623141c726 -title: Крок 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- # --description-- -Зрештою, щоб зупинити виконання циклу `while`, додайте інструкцію `break` в межах останньої інструкції `elif`. +Finally, to stop the execution of the `while` loop, add the `break` statement inside your last `elif` clause. # --hints-- -Остання інструкція `elif` повинна містити інструкцію `break`. +You should have a `break` statement after the `print()` call inside your last `elif` clause. ```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const foo = __helpers.python.getDef("\n"+transformedCode, "main"); - const {function_body} = foo; - assert(function_body.match(/^\s+break/m)); - } -}) +({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].is_equivalent("print('Exiting the program.')\\nbreak")`)) }) ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md index 497ba03f8f5..b8cd09c08be 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65826af5b226a5628aa154b1.md @@ -1,13 +1,15 @@ --- id: 65826af5b226a5628aa154b1 -title: Крок 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- # --description-- -Зрештою, викличте функцію `main()` та випробуйте програму для відстеження витрат. +Finally, call your `main()` function, and try the expense tracker program in the console. + +With that, the expense tracker project is complete! # --hints-- @@ -74,3 +76,58 @@ def main(): --fcc-editable-region-- ``` + +# --solutions-- + +```py +def add_expense(expenses, amount, category): + expenses.append({'amount': amount, 'category': category}) + +def print_expenses(expenses): + for expense in expenses: + print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') + +def total_expenses(expenses): + return sum(map(lambda expense: expense['amount'], expenses)) + +def filter_expenses_by_category(expenses, category): + return filter(lambda expense: expense['category'] == category, expenses) + + +def main(): + expenses = [] + while True: + print('\nExpense Tracker') + print('1. Add an expense') + print('2. List all expenses') + print('3. Show total expenses') + print('4. Filter expenses by category') + print('5. Exit') + + choice = input('Enter your choice: ') + + if choice == '1': + amount = float(input('Enter amount: ')) + category = input('Enter category: ') + add_expense(expenses, amount, category) + + elif choice == '2': + print('\nAll Expenses:') + print_expenses(expenses) + + elif choice == '3': + print('\nTotal Expenses: ', total_expenses(expenses)) + + elif choice == '4': + category = input('Enter category to filter: ') + print(f'\nExpenses for {category}:') + expenses_from_category = filter_expenses_by_category(expenses, category) + print_expenses(expenses_from_category) + + elif choice == '5': + print('Exiting the program.') + break + +main() + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md index 43669da4b07..d1fd45de383 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/66314f2add0a8b57da5d6d91.md @@ -26,14 +26,14 @@ You should pass the `map()` call as the argument to the `list()` function. ```py def add_expense(expenses, amount, category): expenses.append({'amount': amount, 'category': category}) - + def print_expenses(expenses): for expense in expenses: print(f'Amount: {expense["amount"]}, Category: {expense["category"]}') def total_expenses(expenses): pass - + --fcc-editable-region-- test = lambda x: x * 2 print(map(test, [2, 3, 5, 8])) diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md deleted file mode 100644 index 024ccb58c22..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 656883980318048fb11a6e3b -title: Крок 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Тепер видаліть відступ і подивіться на результат. - -# --hints-- - -Видаліть відступ з рядка, де викликаєте `print(i)`. - -```js -assert.match(code, /^for\s+i\s+in\s+text:\s*^print\s*\(\s*i\s*\)/m) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: - print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md deleted file mode 100644 index 3b6737d0360..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 656884439d4d7d929d58669d -title: Крок 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -В Python використовуються відступи, щоб вказувати блоки коду. Двокрапка в кінці рядка є сигналом того, що слідуватиме новий блок коду з відступом. - -Якщо після останньої двокрапки не знайдено блоку з відступом, виконання коду припиняється та видається `IndentationError`. Тому нічого не виводиться. - -Відновіть відступ для виклику `print(i)`. - -# --hints-- - -Зробіть відступ для `print(i)` в тілі циклу `for`. - -```js -const commentless_code = __helpers.python.removeComments(code); -assert.match(commentless_code, /^for\s+i\s+in\s+text:\s*^\s+print\s*\(\s*i\s*\)/m) -``` - -Код містить недійсний синтаксис та/або недійсні відступи. - -```js -({test: () => assert(true) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -text = 'Hello World' -shift = 3 -alphabet = 'abcdefghijklmnopqrstuvwxyz' ---fcc-editable-region-- -for i in text: -print(i) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md deleted file mode 100644 index 4d567bae9f6..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560f9380be92226084ef46.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: 65560f9380be92226084ef46 -title: Крок 1 -challengeType: 20 -dashedName: step-1 ---- - -# --description-- - -У цьому проєкті ви створите бінарне дерево пошуку (БДП). БДП — це структура даних, у якій кожен вузол має не більше двох дочірніх елементів, причому ліва дитина містить значення, менші за батьківський вузол, а права дитина містить значення, більші за батьківський вузол, що дозволяє ефективні операції пошуку та сортування. - -Ось так виглядає бінарне дерево пошуку: - -бінарне дерево пошуку - -Почніть із визначення порожнього класу `TreeNode`. Клас `TreeNode` представляє вузол у бінарному дереві пошуку. Використайте ключове слово `pass`, щоб заповнити тіло класу та уникнути помилок. - -# --hints-- - -Використайте ключове слово `class`, щоб оголосити порожній клас під назвою `TreeNode`. Не забудьте двокрапку вкінці та використайте `pass`, щоб заповнити тіло класу. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - a = __locals.get("TreeNode") - inspect.isclass(a) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- - ---fcc-editable-region-- -``` - diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md deleted file mode 100644 index 9d7313725f8..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65560ffdb7d05d248e012280.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: 65560ffdb7d05d248e012280 -title: Крок 2 -challengeType: 20 -dashedName: step-2 ---- - -# --description-- - -Замініть `pass` на метод `__init__` в межах класу `TreeNode`, щоб ініціалізувати атрибути об’єкта. Не додавайте жодних параметрів і використайте ключове слово `pass`, щоб уникнути помилки. - -# --hints-- - -Визначте метод `__init__` в межах класу `TreeNode`. Не забудьте використати ключове слово `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\([^(]*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md deleted file mode 100644 index eb069ab6173..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65561022956c1024e7184add.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: 65561022956c1024e7184add -title: Крок 3 -challengeType: 20 -dashedName: step-3 ---- - -# --description-- - -Метод `__init__` приймає два параметри: `self` (представляє екземпляр класу, який створюється) та `key` (значення, яке буде зберігатися у вузлі). Додайте ці два параметри до методу `__init__()`. - -# --hints-- - -Додайте параметр `self` до методу. - -```js -({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); -``` - -Додайте параметр `key` до методу. - -```js -({ - test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md deleted file mode 100644 index d47a0a9b2e0..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a10e4a620fc091ba43b3d.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: 655a10e4a620fc091ba43b3d -title: Крок 4 -challengeType: 20 -dashedName: step-4 ---- - -# --description-- - -Видаліть `pass` в межах методу `__init__` та призначте значення параметра `key` до атрибута вузла `key` за допомогою `self.key`. - -Це означає, що атрибут `key` екземпляра `TreeNode` буде встановлено на значення, передане під час створення об’єкта. - -# --hints-- - -Призначте значення параметра `key` до атрибута вузла `key` за допомогою `self.key`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md deleted file mode 100644 index 06b5e407894..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1188d6cfbb0a3ec63c57.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: 655a1188d6cfbb0a3ec63c57 -title: Крок 5 -challengeType: 20 -dashedName: step-5 ---- - -# --description-- - -Призначте значення `None` до атрибутів вузла `left` та `right` в межах методу `__init__`. Причина в тому, що коли вузол створюється вперше, він не має лівих чи правих дітей. Не забудьте використати ключове слово `self`. - -# --hints-- - -Призначте `None` до атрибута вузла `left` за допомогою `self.left`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.left\s*=\s*None/m) }) -``` - -Призначте `None` до атрибута вузла `right` за допомогою `self.right`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.right\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py ---fcc-editable-region-- -class TreeNode: - def __init__(self, key): - self.key = key ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md deleted file mode 100644 index 2f3610d6842..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a11eb4e54b60acd6bd641.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: 655a11eb4e54b60acd6bd641 -title: Крок 6 -challengeType: 20 -dashedName: step-6 ---- - -# --description-- - -Створіть ще один порожній клас під назвою `BinarySearchTree`, який представлятиме бінарне дерево пошуку. - -# --hints-- - -Ви повинні мати клас під назвою `BinarySearchTree`. Не забудьте використати ключове слово `pass`. - -```js -({ - test: () => { - assert(__pyodide.runPython(` - import inspect - bst = __locals.get("BinarySearchTree") - inspect.isclass(bst) - `)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md deleted file mode 100644 index fe30a08dce2..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a12c2ab0bcc0c2ba30e16.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: 655a12c2ab0bcc0c2ba30e16 -title: Крок 7 -challengeType: 20 -dashedName: step-7 ---- - -# --description-- - -Замініть `pass` на метод `__init__` в межах класу `BinarySearchTree` та додайте до цього методу параметр `self`. - -# --hints-- - -Визначте метод `__init__` та додайте до нього параметр `self`. Не забудьте використати ключове слово `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- -class BinarySearchTree: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md deleted file mode 100644 index b2aca116437..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a132b56e0160cfeca08d4.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a132b56e0160cfeca08d4 -title: Крок 8 -challengeType: 20 -dashedName: step-8 ---- - -# --description-- - -Видаліть `pass` з методу `__init__` та встановіть значення атрибута екземпляра під назвою `root` на `None`. - -Атрибут `root` представляє кореневий вузол бінарного дерева пошуку. Оскільки під час створення нового об’єкта `BinarySearchTree` він є конструктором, то спочатку дерево порожнє, тому атрибут `root` має значення `None`. - -# --hints-- - -Встановіть значення атрибута `root` на `None` за допомогою `self.root`. - -```js -({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md deleted file mode 100644 index 408e8330eb0..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13744e82580d7ee3073d.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: 655a13744e82580d7ee3073d -title: Крок 9 -challengeType: 20 -dashedName: step-9 ---- - -# --description-- - -Далі вам потрібно визначити механізм вставки вузлів у дерево. Для цього визначте порожній метод `insert` у класі `BinarySearchTree` та надайте йому параметр `self`. - -# --hints-- - -Визначте метод `insert` з параметром `self` в межах класу `BinarySearchTree`. Пам’ятайте про ключове слово `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- -class BinarySearchTree: - def __init__(self): - self.root = None - - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md deleted file mode 100644 index 194a6e00f28..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a13aa8af2510de51f2e1c.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: 655a13aa8af2510de51f2e1c -title: Крок 10 -challengeType: 20 -dashedName: step-10 ---- - -# --description-- - -Метод `insert` буде викликаний користувачем. Окрім параметра `self`, йому також знадобиться параметр `key`. Цей параметр буде ключовим значенням, яке буде вставлено в бінарне дерево пошуку. - -Додайте `key` як другий параметр до визначення функції. - -# --hints-- - -Метод `insert` має містити параметр `self`. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); -``` - -Метод `insert` має містити параметр `key`. - -```js -({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md deleted file mode 100644 index e8af961f02b..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a142ae611b30e5df0ac16.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a142ae611b30e5df0ac16 -title: Крок 11 -challengeType: 20 -dashedName: step-11 ---- - -# --description-- - -Тепер потрібно викликати ще один метод `_insert()` в межах методу `insert`, який виконає фактичну вставку. Незабаром ви визначите метод `_insert`. - -Видаліть `pass` і призначте `self._insert(self.root, key)` до `self.root`. - -Зверніть увагу: - -- `self.root` передає кореневий вузол дерева як перший аргумент. Це перший крок для процесу вставки. -- `key` передає значення `key`, яке потрібно вставити як другий аргумент. - -# --hints-- - -Рекурсивно викличте метод `_insert()` за допомогою `self._insert()` - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\([^(]*\)/)); - } -}) -``` - -Передайте `self.root` та `key` до виклику `_insert()`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); - } -}) -``` - -Призначте значення, яке повертає виклик `_insert()`, до `self.root`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - ---fcc-editable-region-- - def insert(self,key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md deleted file mode 100644 index cac117c68de..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1479ba7e7c0ee6c1acdd.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: 655a1479ba7e7c0ee6c1acdd -title: Крок 12 -challengeType: 20 -dashedName: step-12 ---- - -# --description-- - -Тепер ви визначите метод `_insert`, який є допоміжною функцією та виконує фактичну вставку. Цей метод є рекурсивним, тобто він викликає сам себе, щоб пройти по дереву, доки не знайде відповідне місце для нового вузла. - -Визначте метод `_insert` з параметрами `self`, `node` та `key`. - -# --hints-- - -Визначте метод `_insert` в межах класу `BinarySearchTree`. Не забудьте використати `pass`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\([^(]*\)\s*:/m) }) -``` - -Метод `_insert` має приймати три параметри: `self`, `node` та `key`. - -```js -({ test: () => assert.match(code, /^\s{4}def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md deleted file mode 100644 index 29983adfd34..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a14a6fe4cd50f38d01dd3.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: 655a14a6fe4cd50f38d01dd3 -title: Крок 13 -challengeType: 20 -dashedName: step-13 ---- - -# --description-- - -Тепер потрібно перевірити, чи параметр `node` є `None`. Якщо так, то метод досягнув кінцевого вузла або порожнього місця в дереві, куди потрібно вставити новий вузол. - -В межах тіла методу напишіть інструкцію `if`, яка перевіряє, чи `node is None`. В межах блоку `if` поверніть `TreeNode(key)`, щоб створити новий екземпляр `TreeNode` з наданим ключем. Він стане новим кінцевим вузлом, тим самим вставляючи ключ у дерево. - -# --hints-- - -Напишіть інструкцію `if`, щоб перевірити, чи `node is None`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); - } -}) -``` - -Поверніть `TreeNode(key)` з блоку `if`. - -```js -({ test: () => - { - const transformedCode = code.replace(/\r/g, ""); - const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); - const {function_body} = ins; - assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md deleted file mode 100644 index 07a0ae6b56a..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a151cc6041f0ff7d24ded.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a151cc6041f0ff7d24ded -title: Крок 14 -challengeType: 20 -dashedName: step-14 ---- - -# --description-- - -Тепер вам потрібно рекурсивно пройти по дереву та вставити значення за принципом бінарних дерев: - -- значення, менші за ключ, розміщуються в лівому піддереві -- значення, більші за ключ, розміщуються в правому піддереві - -Після наявної умовної інструкції напишіть ще одну інструкцію `if`, щоб перевірити, чи `key` строго менший за `node.key`. - -# --hints-- - -Напишіть ще одну інструкцію `if`, щоб перевірити, чи `key` строго менший за `node.key`. Не забудьте використати ключове слово `pass`. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s*:.*?\1if\s+key\s*<\s*node\.key\s*:/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md deleted file mode 100644 index 9a7a107c4af..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a153a6b362d103e125028.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a153a6b362d103e125028 -title: Крок 15 -challengeType: 20 -dashedName: step-15 ---- - -# --description-- - -Якщо `key` < `node.key` повертає `True`, то новий вузол потрібно розмістити в лівому піддереві. - -Видаліть `pass` та рекурсивно викличте метод `_insert` на лівій дитині поточного вузла. Потім призначте результат до атрибута поточного вузла `left`. - -# --hints-- - -Викличте метод `self._insert`, передавши `node.left` та `key` як аргументи. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -Призначте результат виклику `self._insert()` до атрибута поточного вузла `left`. - -```js -({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md deleted file mode 100644 index eeea82587d6..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1564f3aa8210938cdf68.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: 655a1564f3aa8210938cdf68 -title: Крок 16 -challengeType: 20 -dashedName: step-16 ---- - -# --description-- - -Додайте умовну інструкцію `elif`, яка перевіряє, чи `key` > `node.key`. - -# --hints-- - -Додайте умовну інструкцію `elif`, яка перевіряє, чи `key > node.key`. Не забудьте використати ключове слово `pass`. - -```js -({ - test: () => - assert.match( - code, - /^(\s+)if\s+node\s+is\s+None\s*:.*?\1elif\s+key\s*>\s*node\.key\s*:/ms - ) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) ---fcc-editable-region-- - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md deleted file mode 100644 index 73085896a28..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a158c7e80c810f6eff1e1.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 655a158c7e80c810f6eff1e1 -title: Крок 17 -challengeType: 20 -dashedName: step-17 ---- - -# --description-- - -Замініть `pass` на виклик методу `_insert` на правій дитині поточного вузла в межах умови `elif`. Призначте результат до атрибута поточного вузла `right`. - -# --hints-- - -Викличте метод `self._insert()`, передавши `node.right` та `key` як аргументи. - -```js -({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -Призначте результат виклику `self._insert()` до атрибута поточного вузла `right` (`node.right`). - -```js -({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) ---fcc-editable-region-- - elif key > node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md deleted file mode 100644 index 00868c2c996..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a15b683445611528cccf1.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: 655a15b683445611528cccf1 -title: Крок 18 -challengeType: 20 -dashedName: step-18 ---- - -# --description-- - -В кінці методу `_insert`, як тільки процес вставки буде завершено, поверніть поточний вузол, щоб оновити структуру дерева на вищих рівнях стека рекурсивних викликів. - - -# --hints-- - -Поверніть поточний вузол поза межами умовних блоків. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - ---fcc-editable-region-- - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md deleted file mode 100644 index c0c0f22fd23..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a167ea3e96512bf1343ce.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a167ea3e96512bf1343ce -title: Крок 20 -challengeType: 20 -dashedName: step-20 ---- - -# --description-- - -Видаліть `pass` в межах методу `search` та викличте приватний допоміжний метод `_search`, використавши аргументи нижче. Ви визначите `_search` у наступних кроках. - -- `self.root`: це корінь бінарного дерева пошуку. Пошук починається з кореня. -- `key`: це значення, яке користувач хоче знайти у бінарному дереві пошуку. - -Внутрішньо, `search` доручає пошук приватному методу `_search`, який виконує рекурсивний пошук в межах бінарного дерева пошуку. - -# --hints-- - -Викличте метод `_search` в межах методу `search`. - -```js -({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); -``` - -Викличте метод `_search`, передавши `self.root` та `key` як аргументи. - -```js -({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - def search(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md deleted file mode 100644 index 7b16f982e0d..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a16db1ccc5e132b5bc44d.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: 655a16db1ccc5e132b5bc44d -title: Крок 21 -challengeType: 20 -dashedName: step-21 ---- - -# --description-- - -Тепер зробіть так, щоб метод `search` повернув результат виклику `_search()`. - -# --hints-- - -Додайте інструкцію `return` до початку виклику `_search()`. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node ---fcc-editable-region-- - def search(self, key): - self._search(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md deleted file mode 100644 index 43833f92e84..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a173e5b8adc13b761ed74.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a173e5b8adc13b761ed74 -title: Крок 22 -challengeType: 20 -dashedName: step-22 ---- - -# --description-- - -Тепер визначте метод `_search` з трьома параметрами, а саме `self`, `node` та `key`. - -# --hints-- - -Оголосіть метод `_search`. Зверніть увагу на знак підкреслення напочатку та не забудьте використати `pass`. - -```js -({ test: () => assert.match(code, /def\s+_search/) }); -``` - -Метод `_search` має приймати три параметри: `self`, `node` та `key`. - -```js -({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md deleted file mode 100644 index 164bccf383b..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a194276dfa11460f7b5e3.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: 655a194276dfa11460f7b5e3 -title: Крок 23 -challengeType: 20 -dashedName: step-23 ---- - -# --description-- - -Тепер ви визначите базовий випадок для рекурсивного пошуку. Напишіть інструкцію `if`, яка перевіряє дві умови: - -- якщо `node` є `None`: це вказує на те, що пошук досягнув кінця гілки, не знайшовши ключа; -- якщо `node.key == key`: це означає, що ключ знайдено у поточному вузлі. - -Поєднайте дві умови за допомогою оператора `or` та поверніть поточний вузол у блоці `if`. - -# --hints-- - -Напишіть інструкцію `if`, яка перевіряє, чи `node` має значення `None` або `node.key` дорівнює `key`. - -```js -({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) -``` - -Поверніть `node` з блоку `if`. - -```js -({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - ---fcc-editable-region-- - def _search(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md deleted file mode 100644 index e4bef19f8e5..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a1a6d8c44db154b00c909.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a1a6d8c44db154b00c909 -title: Крок 24 -challengeType: 20 -dashedName: step-24 ---- - -# --description-- - -Напишіть ще одну інструкцію `if`, яка перевіряє, чи цільовий ключ менший за ключ поточного вузла. - -Поверніть результат виклику методу `_search`, аргументами якого є ліва дитина поточного вузла та `key`, в межах блоку `if`. - -# --hints-- - -Напишіть ще одну інструкцію `if`, щоб перевірити, чи `key` < `node.key`. - -```js -const after_split = code.split('def search(self, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -Поверніть `self._search(node.left, key)` з нового блоку `if`. - -```js -({ test: () => assert.match(code, /return\s+self\._search\(\s*node\.left\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md deleted file mode 100644 index c1d31a482ef..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a227e57aabb25d1f9c987.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: 655a227e57aabb25d1f9c987 -title: Крок 19 -challengeType: 20 -dashedName: step-19 ---- - -# --description-- - -Тепер настав час попрацювати над пошуком. - -Визначте метод під назвою `search` у класі `BinarySearchTree`. Надайте методу `search` два параметри: `self` та `key`. - - -# --hints-- - -Визначте метод під назвою `search`. Пам’ятайте про ключове слово `pass`. - -```js -({ test: () => assert.match(code, /def\s+search/) }); -``` - -Метод `search` має приймати два параметри: `self` та `key`. - -```js -({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md deleted file mode 100644 index 9a92a0e88de..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a44442b60ee5a28df8ee5.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: 655a44442b60ee5a28df8ee5 -title: Крок 25 -challengeType: 20 -dashedName: step-25 ---- - -# --description-- - -Якщо друга інструкція `if` не `True`, то цільовий ключ більший або дорівнює ключу поточного вузла. - -Якщо цільовий ключ більший за ключ поточного вузла в бінарному дереві пошуку, то пошук продовжується в правому піддереві. - -Поверніть результат виклику методу `_search`, аргументами якого є права дитина поточного вузла та `key`, після блоку `if`. - -# --hints-- - -Рекурсивно викличте метод `_search` за допомогою `self._search()`. - -```js -const after_split = code.split('return self._search(node.left, key)')[1]; -assert.match(after_split, /self\._search/); -``` - -Передайте два аргументи до виклику методу `_search`: `node.right` та `key`. - -```js -({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); -``` - -Поверніть результат виклику методу `_search`. - -```js -({ - test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) ---fcc-editable-region-- - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md deleted file mode 100644 index daf5abd154e..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a452d40556e5c25e4aac8.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: 655a452d40556e5c25e4aac8 -title: Крок 26 -challengeType: 20 -dashedName: step-26 ---- - -# --description-- - -Наступним кроком буде робота над видаленням вузлів. - -Визначте метод `delete` в межах класу `BinarySearchTree`. Він приймає два параметри: `self` та `key`. - -`key` — це значення, яке користувач хоче видалити з бінарного дерева пошуку. - -# --hints-- - -Визначте метод `delete` з двома параметрами: `self` та `key`. Не забудьте використати `pass`. - -```js -({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md deleted file mode 100644 index 585b93757f0..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a45c52fa3ea5ece3034c7.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: 655a45c52fa3ea5ece3034c7 -title: Крок 27 -challengeType: 20 -dashedName: step-27 ---- - -# --description-- - -Видаліть `pass` в межах методу `delete` та викличте приватний допоміжний метод `_delete`, аргументами якого є корінь бінарного дерева пошуку та `key`. - -# --hints-- - -Метод `delete` має викликати метод `_delete` з двома аргументами: `self.root` та `key`. - -```js -({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - ---fcc-editable-region-- - def delete(self, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md deleted file mode 100644 index 8edfa3fcc99..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4614304cd36031cb4e75.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a4614304cd36031cb4e75 -title: Крок 28 -challengeType: 20 -dashedName: step-28 ---- - -# --description-- - -Операція видалення може призвести до створення нового кореня (наприклад, якщо вузол, який потрібно видалити, є поточним коренем). - -Щоб обробити цей випадок, призначте результат виклику `_delete` до `self.root`. - -# --hints-- - -Призначте результат виклику `_delete()` до `self.root`. - -```js -({ test: () => assert.match(code, /self\.root\s*=\s*self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) ---fcc-editable-region-- - def delete(self, key): - self._delete(self.root, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md deleted file mode 100644 index 25d2aafa32d..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46aa8e10c26218c5034c.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 655a46aa8e10c26218c5034c -title: Крок 29 -challengeType: 20 -dashedName: step-29 ---- - -# --description-- - -В межах класу `BinarySearchTree` визначте новий допоміжний метод під назвою `_delete`, який приймає три параметри: `self`, `node` та `key`. - -# --hints-- - -Визначте метод `_delete` в межах класу `BinarySearchTree` з параметрами `self`, `node` та `key`. Не забудьте використати ключове слово `pass`. - -```js -assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md deleted file mode 100644 index bb2d5f3b9ed..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a46fce0ce5a638c180e36.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -id: 655a46fce0ce5a638c180e36 -title: Крок 30 -challengeType: 20 -dashedName: step-30 ---- - -# --description-- - -Замініть `pass` в межах методу `_delete` на інструкцію `if`, яка перевірятиме, чи поточний `node` є `None`. Якщо поточний вузол — `None`, то ключ, який потрібно видалити, не знайдено. - -Отже, поверніть `node` із блоку `if`. - -# --hints-- - -Напишіть інструкцію `if`, яка перевіряє, чи наявний `node` є `None`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+node\s+is\s+None/); -``` - -Поверніть `node` в межах блоку `if`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /return\s+node/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md deleted file mode 100644 index 4a03f01c6bf..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4761e1a40065fc4d3712.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: 655a4761e1a40065fc4d3712 -title: Крок 31 -challengeType: 20 -dashedName: step-31 ---- - -# --description-- - -Напишіть ще одну інструкцію після наявної інструкції `if`, яка перевірятиме, чи цільовий ключ менший за ключ поточного вузла. - -# --hints-- - -Ви повинні мати умову `if`, яка перевіряє, чи `key` менший за `node.key`. Не забудьте використати `pass`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /if\s+key\s+<\s+node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md deleted file mode 100644 index 2bc40c31fd0..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a47a9404d856743c7f529.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: 655a47a9404d856743c7f529 -title: Крок 32 -challengeType: 20 -dashedName: step-32 ---- - -# --description-- - -Замініть `pass` в межах блоку `if` на виклик методу `_delete`, передавши ліву дитину поточного вузла та `key` як аргументи. Призначте виклик функції до лівого вузла. - -# --hints-- - -Викличте метод `_delete` з аргументами `node.left` та `key`. - -```js -assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -Призначте результат виклику `_delete()` до лівої дитини поточного вузла (`node.left`). - -```js -assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md deleted file mode 100644 index ea5700acea3..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a482dfc92896901b9c97e.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a482dfc92896901b9c97e -title: Крок 33 -challengeType: 20 -dashedName: step-33 ---- - -# --description-- - -Напишіть інструкцію `elif`, яка перевіряє, чи `key > node.key`. - -Викличте метод `_delete`, аргументами якого є права дитина поточного вузла та `key`, в межах блоку `elif` і призначте результат до правого вузла. - -# --hints-- - -Напишіть інструкцію `elif`, яка перевіряє, чи `key > node.key`. - -```js -const after_split = code.split('def _delete(self, node, key):')[1]; -assert.match(after_split, /elif\s+key\s+>\s+node\.key/); -``` - -Викличте метод `_delete` з аргументами `node.right` та `key`. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -Призначте результат виклику `_delete()` до `node.right`. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md deleted file mode 100644 index 569e7f364aa..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a489d83b1996bd537b153.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: 655a489d83b1996bd537b153 -title: Крок 34 -challengeType: 20 -dashedName: step-34 ---- - -# --description-- - -Умовні інструкції, які ви написали в попередніх кроках, дійсні для вузлів, які мають 0 або 1 дочірній елемент. Майбутні умови будуть дійсними, якщо є 2 дочірні елементи. - -Для цього додайте умову `else` до умовної інструкції. - -# --hints-- - -Додайте умову `else`. Не забудьте використати ключове слово `pass`. - -```js -assert.match(code, /else\s*:/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - ---fcc-editable-region-- - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md deleted file mode 100644 index 566f3ddc374..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a48da2c25656d2f7bab4d.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: 655a48da2c25656d2f7bab4d -title: Крок 35 -challengeType: 20 -dashedName: step-35 ---- - -# --description-- - -Замініть `pass` в межах блоку `else` на інструкцію `if`, яка перевірятиме, чи ліва дитина поточного вузла є `None`. - -Якщо `node.left` є `None`, то лівої дитини немає. В такому випадку поверніть праву дитину з нового блоку `if` як заміну. - -# --hints-- - -Напишіть інструкцію `if`, яка перевіряє, чи `node.left` є `None`. - -```js -assert.match(code, /if\s+node\.left\s*is\s*None/); -``` - -Поверніть праву дитину поточного вузла. - -```js -assert.match(code, /return\s+node\.right/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md deleted file mode 100644 index 3bbc067dced..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a493ab909a96f7c316cd5.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a493ab909a96f7c316cd5 -title: Крок 36 -challengeType: 20 -dashedName: step-36 ---- - -# --description-- - -Додайте умову `elif` під інструкцією `if`, щоб перевірити, чи права дитина поточного вузла (`node.right`) є `None`. - -Якщо попередня умова виконується, то правої дитини немає. В такому випадку поверніть ліву дитину поточного вузла з блоку `elif` як заміну. - -# --hints-- - -Створіть інструкцію `elif`, яка перевіряє, чи права дитина поточного вузла є `None`. - -```js -assert.match(code, /elif\s+node\.right\s+is\s+None/); -``` - -Поверніть ліву дитину поточного вузла. - -```js -assert.match(code, /return\s+node\.left/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md deleted file mode 100644 index 9bde20cf382..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a4ffc762d117470b94e3b.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: 655a4ffc762d117470b94e3b -title: Крок 37 -challengeType: 20 -dashedName: step-37 ---- - -# --description-- - -Якщо жодна з попередніх умов не виконується, то вузол має і ліві, і праві дочірні елементи. - -Щоб вибрати нащадка, потрібно знайти мінімальне значення в правому піддереві. Найменше значення буде порядковим нащадком поточного вузла. - -Пізніше ви визначите допоміжний метод під назвою `_min_value`, який знаходить найменше значення в заданому піддереві. - -Наразі додайте виклик `_min_value` після блоку `elif`, передавши `node.right` як аргумент. Призначте його до ключа поточного вузла. - -# --hints-- - -Призначте `self._min_value(node.right)` до `node.key` після блоку `elif`. - -```js -assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md deleted file mode 100644 index 2c19320f3de..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a50f992ba7177aff2b718.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a50f992ba7177aff2b718 -title: Крок 38 -challengeType: 20 -dashedName: step-38 ---- - -# --description-- - -Після знаходження мінімального значення вам потрібно буде рекурсивно видалити вузол з мінімальним значенням із правого піддерева. - -Цей крок гарантує, що вузол з мінімальним значенням буде видалено з дерева, зберігаючи властивість бінарного дерева пошуку. - -# --hints-- - -Рекурсивно викличте метод `_delete` з аргументами `node.right` та `node.key`. - -```js -assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); -``` - -Призначте значення, яке повертає виклик `_delete()`, до правої дитини поточного вузла. - -```js -assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left ---fcc-editable-region-- - node.key = self._min_value(node.right) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md deleted file mode 100644 index 9674fe78674..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a515f4b85ce79464fe5e8.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: 655a515f4b85ce79464fe5e8 -title: Крок 39 -challengeType: 20 -dashedName: step-39 ---- - -# --description-- - -Поверніть поточний вузол після умови `else`. - -# --hints-- - -Поверніть поточний вузол після умови `else`. - -```js -({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) ---fcc-editable-region-- - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md deleted file mode 100644 index d34b3ec1ee2..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51a705c97d7a9294ab2a.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: 655a51a705c97d7a9294ab2a -title: Крок 40 -challengeType: 20 -dashedName: step-40 ---- - -# --description-- - -Якщо вузол, який ви хочете видалити, має 2 дочірні елементи, то з них потрібно вибрати вузол для заміни. Метод порядкового нащадка вибирає найменший елемент з правого піддерева та розміщує цей елемент на місці видаленого вузла. - -Визначте метод `_min_value` і надайте йому два параметри: `self` та `node`. - -# --hints-- - -Визначте метод `_min_value` з параметрами `self` та `node`. Не забудьте використати ключове слово `pass`. - -```js -({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md deleted file mode 100644 index ad0c7cb1f1b..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a51ff908edc7c12c3a92c.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: 655a51ff908edc7c12c3a92c -title: Крок 41 -challengeType: 20 -dashedName: step-41 ---- - -# --description-- - -Щоб знайти найменше значення в правому піддереві, потрібно ітерувати над лівими дітьми даного вузла, поки не досягнете крайнього лівого (найменшого) вузла в піддереві. - -Для цього напишіть цикл `while`, який запускатиметься, коли `node.left is not None`, і перемістіть `pass` у блок `while`. Ця умова перевіряє, чи є ліва дитина. Поки є ліва дитина, цикл продовжується, і потрібно знайти менше значення. - -# --hints-- - -Використайте умову `node.left is not None` у циклі `while`. - -```js -({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md deleted file mode 100644 index b731763b0ef..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a523d4bbc8b7d3848d7dd.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: 655a523d4bbc8b7d3848d7dd -title: Крок 42 -challengeType: 20 -dashedName: step-42 ---- - -# --description-- - -Замініть `pass` в межах циклу `while` на `node` та призначте до нього ліву дитину вузла. - -# --hints-- - -Призначте `node.left` до `node` в межах циклу `while`. - -```js -({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md deleted file mode 100644 index 3127f8a5b5d..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a52bca925967fa2336190.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a52bca925967fa2336190 -title: Крок 43 -challengeType: 20 -dashedName: step-43 ---- - -# --description-- - -Коли крайній лівий вузол знайдено (тобто коли `node.left` стає `None`), цикл завершується. - -Після циклу `while` поверніть ключ крайнього лівого вузла, який представляє мінімальне значення в даному піддереві. - -Так ви зможете отримати значення, яке замінить вузол після його видалення. - -# --hints-- - -Поверніть `node.key` після циклу `while` як результат функції. - -```js -({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - ---fcc-editable-region-- - def _min_value(self, node): - while node.left is not None: - node = node.left ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md deleted file mode 100644 index 00d7b970295..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a536e99be288210f01451.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a536e99be288210f01451 -title: Крок 44 -challengeType: 20 -dashedName: step-44 ---- - -# --description-- - -Метод `inorder_traversal` відповідає за виконання серединного обходу бінарного дерева пошуку. Він повертає ключі вузлів у відсортованому порядку. - -Серединний обхід — це алгоритм обходу бінарного дерева вглиб, який відвідує ліве піддерево, поточний вузол, а потім праве піддерево. - -Створіть метод `inorder_traversal`, який приймає `self` як параметр. - -# --hints-- - -Визначте метод `inorder_traversal`, який приймає `self` як параметр. Не забудьте використати `pass`. - -```js -({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md deleted file mode 100644 index aee5c411fe5..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5489c62889851c60ff4b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a5489c62889851c60ff4b -title: Крок 45 -challengeType: 20 -dashedName: step-45 ---- - -# --description-- - -В межах методу замініть `pass` на порожній список під назвою `result`, який зберігатиме ключі вузлів у відсортованому порядку. - -# --hints-- - -Ініціалізуйте порожній список під назвою `result` в межах методу. - -```js -({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md deleted file mode 100644 index 897e721d003..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54cd88e33b8646c67e16.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 655a54cd88e33b8646c67e16 -title: Крок 46 -challengeType: 20 -dashedName: step-46 ---- - -# --description-- - -Запустіть серединний обхід в межах методу `inorder_traversal`, викликавши допоміжний метод `_inorder_traversal` та передавши корінь БДП і список `result` як аргументи. - -Це розпочне обхід із кореня бінарного дерева пошуку (`self.root`), а список `result` буде передано для накопичення ключів під час обходу. - -# --hints-- - -Викличте `_inorder_traversal` і передайте `self.root` та `result` як аргументи. - -```js -({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md deleted file mode 100644 index ba0f4a43ac3..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a54fd97ada88722fa5c8b.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -id: 655a54fd97ada88722fa5c8b -title: Крок 47 -challengeType: 20 -dashedName: step-47 ---- - -# --description-- - -Наприкінці, поверніть відсортований список ключів. - -# --hints-- - -Поверніть список `result` з методу `inorder_traversal`. - -```js -assert.match(code, /return\s+result/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - ---fcc-editable-region-- - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md deleted file mode 100644 index dd9898aba59..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a552337ee62882fdeee79.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: 655a552337ee62882fdeee79 -title: Крок 48 -challengeType: 20 -dashedName: step-48 ---- - -# --description-- - -Визначте метод `_inorder_traversal` і надайте йому три параметри: `self`, `node` та `result`. Де `node` — це поточний вузол, який розглядається під час обходу, а `result` — це список, до якого ключі додаються у відсортованому порядку. - -# --hints-- - -Визначте метод `_inorder_traversal`, який приймає три параметри: `self`, `node` та `result`. Не забудьте використати `pass`. - -```js -assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md deleted file mode 100644 index be64b3a03d4..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a557104bb878962e2ae95.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: 655a557104bb878962e2ae95 -title: Крок 49 -challengeType: 20 -dashedName: step-49 ---- - -# --description-- - -Замініть `pass` на інструкцію `if`, яка перевіряє, чи поточний вузол (`node`) не порожній. Потім рекурсивно викличте `_inorder_traversal` з аргументами `node.left` та `result`. - -# --hints-- - -Умовою перевірки має бути `if node`. - -```js -assert.match(code, /if\s+node:/); -``` - -Викличте `_inorder_traversal` на `node.left` в межах блоку `if`. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - pass ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md deleted file mode 100644 index 7ce1bc24bf9..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5607eec63b8c2b1d7087.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -id: 655a5607eec63b8c2b1d7087 -title: Крок 50 -challengeType: 20 -dashedName: step-50 ---- - -# --description-- - -Все ще в межах блоку `if`, додайте `key` поточного вузла до списку `result`. - -# --hints-- - -Додайте `node.key` до списку `result`. - -```js -assert.match(code, /result\.append\(\s*node\.key\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md deleted file mode 100644 index ec06742fff4..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5637ad283d8d24dd49de.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a5637ad283d8d24dd49de -title: Крок 52 -challengeType: 20 -dashedName: step-52 ---- - -# --description-- - -Настав час застосувати все в користуванні. - -Створіть екземпляр класу `BinarySearchTree` та призначте його до змінної `bst`. - -# --hints-- - -Створіть екземпляр класу `BinarySearchTree`. - -```js -assert.match(code, /BinarySearchTree\(\s*\)/); -``` - -Призначте новий екземпляр `BinarySearchTree` до змінної `bst`. - -```js -assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md deleted file mode 100644 index be2ed6a2c8e..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56a6a1168a8f201ba666.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: 655a56a6a1168a8f201ba666 -title: Крок 53 -challengeType: 20 -dashedName: step-53 ---- - -# --description-- - -Під екземпляром `BinarySearchTree` створіть список під назвою `nodes` з такими цілими значеннями: `50`, `30`, `20`, `40`, `70`, `60`, `80`. - -# --hints-- - -Ви повинні мати список під назвою `nodes`. - -```js -assert.match(code, /nodes/); -``` - -Змінна `node` повинна мати значення `[50, 30, 20, 40, 70, 60, 80]`. - -```js -assert.match(code, /nodes\s*=\s*\[\s*50\s*,\s*30\s*,\s*20\s*,\s*40\s*\s*,\s*70\s*,\s*60\s*,\s*80\s*\]/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md deleted file mode 100644 index 02f5697e4c2..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a56dc4749dc906fac6802.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a56dc4749dc906fac6802 -title: Крок 54 -challengeType: 20 -dashedName: step-54 ---- - -# --description-- - -Напишіть цикл `for`, щоб ітерувати над списком `nodes`. Викличте метод `insert` об’єкта `bst` в межах тіла циклу `for`, передавши вузол на поточній ітерації, щоб упорядковано вставити всі значення у бінарне дерево пошуку. - -# --hints-- - -Ви повинні мати цикл `for node in nodes`. - -```js -assert.match(code, /for\s+node\s+in\s+nodes/); -``` - -Цикл `for` повинен містити `bst.insert(node)`. - -```js -assert.match(code, /bst\.insert/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md deleted file mode 100644 index 3d54d4e2768..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a577302a8a791ed62e8d9.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: 655a577302a8a791ed62e8d9 -title: Крок 51 -challengeType: 20 -dashedName: step-51 ---- - -# --description-- - -Наприкінці, рекурсивно викличте метод `_inorder_traversal` на правій дитині поточного вузла. - -Цей рекурсивний виклик досліджує все праве піддерево в серединному порядку. - -# --hints-- - -Викличте `_inorder_traversal`, передавши `node.right` та `result` як аргументи. - -```js -assert.match(code, /self\._inorder_traversal\(\s*node\.right\s*,\s*result\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result ---fcc-editable-region-- - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md deleted file mode 100644 index 6f55528ebd1..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a57bf1d702b936f788b70.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: 655a57bf1d702b936f788b70 -title: Крок 55 -challengeType: 20 -dashedName: step-55 ---- - -# --description-- - -Викличте функцію `print()` під циклом та передайте до неї рядок `Inorder traversal:` як перший аргумент і виклик `bst.inorder_traversal()` як другий аргумент, щоб надрукувати результат серединного обходу. - -# --hints-- - -Викличте `print()` і передайте рядок `Inorder traversal:` та виклик `bst.inorder_traversal()` як аргументи. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md deleted file mode 100644 index 3b1d4cf3849..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a580da8b2419496c88f61.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: 655a580da8b2419496c88f61 -title: Крок 56 -challengeType: 20 -dashedName: step-56 ---- - -# --description-- - -Під викликом `print()` додайте ще один виклик `print()`, щоб перевірити пошук. Цього разу передайте рядок `Search for 40:` як перший аргумент. Для другого аргументу викличте метод `search` змінної `bst` і передайте `40` як аргумент. - -# --hints-- - -Викличте `print()` і передайте рядок `Search for 40:` та виклик `bst.search(40)` як аргументи. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md deleted file mode 100644 index e62a7686d3e..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a585b87885d962f715a10.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a585b87885d962f715a10 -title: Крок 57 -challengeType: 20 -dashedName: step-57 ---- - -# --description-- - -Результатом попереднього кроку є такий об’єкт: `<__main__.TreeNode object at 0x7fecd9cc66b0>`. Це типове представлення рядка під час друку екземпляра класу. - -Щоб надрукувати корисне значення, визначте ще один метод під назвою `__str__` в класі `TreeNode`. Він приймає аргумент `self`. - -# --hints-- - -Визначте метод `__str__`, який приймає аргумент `self`. Не забудьте використати `pass`. - -```js -assert.match(code, /def\s+__str__\(\s*self\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - ---fcc-editable-region-- - ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md deleted file mode 100644 index 90d6f328f52..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58897968829714d6e359.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: 655a58897968829714d6e359 -title: Крок 58 -challengeType: 20 -dashedName: step-58 ---- - -# --description-- - -Видаліть `pass` в межах методу `__str__` та поверніть результат виклику функції `str()` з аргументом `self.key`. Це атрибут об’єкта поточного вузла, який зберігає значення, пов’язане з вузлом. - -# --hints-- - -Поверніть значення рядка `self.key` з методу `__str__`. - -```js -({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None ---fcc-editable-region-- - def __str__(self): - pass ---fcc-editable-region-- - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md deleted file mode 100644 index abb1099e384..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a58b2951601981fb893c8.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: 655a58b2951601981fb893c8 -title: Крок 59 -challengeType: 20 -dashedName: step-59 ---- - -# --description-- - -Як можете бачити, зараз ви отримуєте читабельні вихідні дані на консолі. - -Викличте метод `delete` змінної `bst` після викликів `print()` і видаліть `40` з бінарного дерева пошуку. - -# --hints-- - -Викличте метод `delete` змінної `bst`, передавши `40` як аргумент. - -```js -({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md deleted file mode 100644 index 1ffd2eaedc8..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a5908085cdf99b7630646.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: 655a5908085cdf99b7630646 -title: Крок 60 -challengeType: 20 -dashedName: step-60 ---- - -# --description-- - -Підтвердьте, що `40` було видалено, надрукувавши дерево. Після видалення `40`, викличте `print()`, передавши рядок `Inorder traversal after deleting 40:` як перший аргумент та виклик `inorder_traversal()` як другий аргумент. - -# --hints-- - -Викличте `print`, передавши рядок `Inorder traversal after deleting 40:` як перший аргумент та виклик `inorder_traversal()` як другий аргумент. - -```js -({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - ---fcc-editable-region-- -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) - ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md deleted file mode 100644 index a6f560e7e74..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/655a59607b0d2e9b0f5d69e5.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: 655a59607b0d2e9b0f5d69e5 -title: Крок 61 -challengeType: 20 -dashedName: step-61 ---- - -# --description-- - -Як останній крок, знову знайдіть `40`. Це значення потрібно видалити. Ви можете скопіювати та вставити попередній виклик `print()`. - -На цьому створення бінарного дерева пошуку завершено. Чудова робота! - -# --hints-- - -В нижній частині коду має бути `print('Search for 40:', bst.search(40))`. - -```js -({ test: () => assert.equal(code.match(/^print\s*\(\s*("|')Search for 40:\1\s*,\s*bst\.search\s*\(\s*40\s*\)\s*\)/gm).length, 2) }) -``` - -# --seed-- - -## --seed-contents-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) ---fcc-editable-region-- -print("Inorder traversal:", bst.inorder_traversal()) -print("Search for 40:", bst.search(40)) -bst.delete(40) -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - ---fcc-editable-region-- -``` - -# --solutions-- - -```py -class TreeNode: - def __init__(self, key): - self.key = key - self.left = None - self.right = None - - def __str__(self): - return str(self.key) - - -class BinarySearchTree: - def __init__(self): - self.root = None - - def insert(self,key): - self.root = self._insert(self.root, key) - - def _insert(self, node, key): - if node is None: - return TreeNode(key) - if key < node.key: - node.left = self._insert(node.left, key) - elif key > node.key: - node.right = self._insert(node.right, key) - return node - - def search(self, key): - return self._search(self.root, key) - - def _search(self, node, key): - if node is None or node.key == key: - return node - if key < node.key: - return self._search(node.left, key) - return self._search(node.right, key) - - def delete(self, key): - self.root = self._delete(self.root, key) - - def _delete(self, node, key): - if node is None: - return node - if key < node.key: - node.left = self._delete(node.left, key) - elif key > node.key: - node.right = self._delete(node.right, key) - else: - if node.left is None: - return node.right - elif node.right is None: - return node.left - - node.key = self._min_value(node.right) - node.right = self._delete(node.right, node.key) - return node - - def _min_value(self, node): - while node.left is not None: - node = node.left - return node.key - - def inorder_traversal(self): - result = [] - self._inorder_traversal(self.root, result) - return result - - def _inorder_traversal(self, node, result): - if node: - self._inorder_traversal(node.left, result) - result.append(node.key) - self._inorder_traversal(node.right, result) - - -bst = BinarySearchTree() -nodes = [50, 30, 20, 40, 70, 60, 80] - -for node in nodes: - bst.insert(node) - -print("Inorder traversal:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) - -bst.delete(40) - -print("Inorder traversal after deleting 40:", bst.inorder_traversal()) - -print("Search for 40:", bst.search(40)) -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md index 335bb576bab..46129eeae90 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -11,7 +11,7 @@ dashedName: step-30 Щоб надрукувати корисне значення, визначте ще один метод під назвою `__str__` в класі `TreeNode`. Він приймає аргумент `self`. -After defining `__str__` you'll get an exception in the console because the `__str__` method doesn't return anything yet. You'll work on the method body in the next step. +Після визначення `__str__` ви отримаєте виняток на консолі, оскільки наразі метод `__str__` нічого не повертає. У наступному кроці ви попрацюєте над тілом методу. # --hints-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md deleted file mode 100644 index b03dea11369..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -id: 5e44412c903586ffb414c94c -title: Арифметичний форматор -challengeType: 23 -forumTopicId: 462359 -dashedName: arithmetic-formatter ---- - -# --description-- - -У початковій школі вчать вирішувати математичні приклади вертикально, аби було простіше. Наприклад, «235 + 52» перетворюється на: - -```py - 235 -+ 52 ------ -``` - -Закінчіть функцію `arithmetic_arranger`, яка отримує список рядків з математичними прикладами та послідовно повертає їх у вертикальному вигляді. В разі потреби функція повинна приймати другий аргумент. Коли другий аргумент встановлено на `True`, відповіді повинні відображатися. - -## Наприклад - -Виклик функції: - -```py -arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]) -``` - -Вихідні дані: - -```py - 32 3801 45 123 -+ 698 - 2 + 43 + 49 ------ ------ ---- ----- -``` - -Виклик функції: - -```py -arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True) -``` - -Вихідні дані: - -```py - 32 1 9999 523 -+ 8 - 3801 + 9999 - 49 ----- ------ ------ ----- - 40 -3800 19998 474 -``` - -## Правила - -Функція поверне правильне перетворення, якщо надані приклади відформатовані правильно. В іншому випадку буде **повернений** **рядок**, який описує помилку, важливу для користувача. - -- Ситуації, які повернуть помилку: - - Функції надано **забагато прикладів**. Ліміт становить **5 прикладів**. Якщо їх більше, то повернеться `'Error: Too many problems.'` - - Функція приймає відповідні оператори: **додавання** та **віднімання**. Множення та ділення поверне помилку. Інші оператори, які не згадані тут, тестовані не будуть. Повернеться помилка `"Error: Operator must be '+' or '-'."` - - Кожне число (операнд) повинне містити лише цифри. В іншому випадку функція поверне `'Error: Numbers must only contain digits.'` - - Кожен операнд (тобто число з кожної сторони оператора) може мати максимум чотири цифри по ширині. В іншому випадку рядок помилки видасть `'Error: Numbers cannot be more than four digits.'` -- Якщо користувач надав правильний формат прикладу, то перетворення буде дотримуватись таких правил: - - Повинен бути лише один пробіл між оператором і найдовшим із двох операндів; оператор буде на тому ж рядку, що й другий операнд; обоє операндів будуть в тому порядку, як і надано (перший буде зверху, а другий буде знизу). - - Числа повинні бути вирівняні за правим краєм. - - Між кожним прикладом повинно бути чотири пробіли. - - Знизу кожного прикладу повинна бути риска. Риска повинна йти по всій довжині прикладу індивідуально. (На прикладі вище видно, як це повинно виглядати.) - -# --hints-- - -`arithmetic_arranger(["3801 - 2", "123 + 49"])` має повернути `3801 123\n- 2 + 49\n------ -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3801 - 2", "123 + 49"]), ' 3801 123\\n- 2 + 49\\n------ -----')`); - } -}) -``` - -`arithmetic_arranger(["1 + 2", "1 - 9380"])` має повернути `1 1\n+ 2 - 9380\n--- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["1 + 2", "1 - 9380"]), ' 1 1\\n+ 2 - 9380\\n--- ------')`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"])` має повернути `3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]), ' 3 3801 45 123\\n+ 855 - 2 + 43 + 49\\n----- ------ ---- -----')`); - } -}) -``` - -`arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"])` має повернути `11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]), ' 11 3801 1 123 1\\n+ 4 - 2999 + 2 + 49 - 9380\\n---- ------ --- ----- ------')`); - } -}) -``` - -`arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"])` має повернути `'Error: Too many problems.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]), 'Error: Too many problems.')`); - } -}) -``` - -`arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"])` має повернути `"Error: Operator must be '+' or '-'."`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 / 855", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Operator must be '+' or '-'.")`); - } -}) -``` - -`arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"])` має повернути `'Error: Numbers cannot be more than four digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers cannot be more than four digits.")`); - } -}) -``` - -`arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"])` має повернути `'Error: Numbers must only contain digits.'`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]), "Error: Numbers must only contain digits.")`); - } -}) -``` - -`arithmetic_arranger(["3 + 855", "988 + 40"], True)` має повернути `3 988\n+ 855 + 40\n----- -----\n 858 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["3 + 855", "988 + 40"], True), " 3 988\\n+ 855 + 40\\n----- -----\\n 858 1028")`); - } -}) -``` - -`arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True)` має повернути `32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028`. - -```js -({ - test: () => { - runPython(` -from unittest import TestCase - -TestCase().assertEqual(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49", "988 + 40"], True), " 32 1 45 123 988\\n- 698 - 3801 + 43 + 49 + 40\\n----- ------ ---- ----- -----\\n -666 -3800 88 172 1028")`); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def arithmetic_arranger(problems, show_answers=False): - - return problems - -print(f'\n{arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])}') -``` - -# --solutions-- - -```py -def arithmetic_arranger(problems, result=False): - - lin1 = "" - lin2 = "" - lin3 = "" - lin4 = "" - - if len(problems) > 5: - return 'Error: Too many problems.' - for problem in problems: - [num1, sym, num2] = problem.split() - sign = ['+', '-'] - if sym not in sign: - return ("Error: Operator must be '+' or '-'.") - if len(num1) > 4 or len(num2) > 4: - return ("Error: Numbers cannot be more than four digits.") - if not num1.isnumeric() or not num2.isnumeric(): - return ("Error: Numbers must only contain digits.") - - lin1 += " " + num1 + " " if len(num1) >= len( - num2) else " " * (len(num2) + 2 - len(num1)) + num1 + " " - lin2 += sym + " " + num2 + " " if len(num2) >= len( - num1) else sym + " " * (len(num1) - len(num2) + 1) + num2 + " " - nmax = (len(num1) + 2) if len(num1) >= len(num2) else (len(num2) + 2) - lin3 += "-" * nmax + " " - op = int(num1) + int(num2) if sym == "+" else int(num1) - int(num2) - lin4 += (" " * (nmax - len(str(op)))) + str(op) + " " - - arranged_problems = lin1.rstrip() + "\n" + lin2.rstrip( - ) + "\n" + lin3.rstrip() - if result: - arranged_problems += "\n" + lin4.rstrip() - - return arranged_problems -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md deleted file mode 100644 index 792b277b0b6..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md +++ /dev/null @@ -1,887 +0,0 @@ ---- -id: 5e44413e903586ffb414c94e -title: Застосунок для ведення бюджету -challengeType: 23 -forumTopicId: 462361 -dashedName: budget-app ---- - -# --description-- - -Завершіть клас `Category`. Він повинен опрацьовувати об’єкти, базуючись на різних категоріях (наприклад, *їжа*, *одяг* та *розваги*). Коли об’єкти створені, вони передаються до назви категорії. Клас повинен мати поле класу під назвою `ledger`, яке є списком. Клас також повинен містити наступні методи: - -- Метод `deposit`, що приймає суму та опис. Якщо жодного опису не дано, то він автоматично стає порожнім рядком. Цей метод повинен додавати об’єкти до списку головної книги у вигляді `{"amount": amount, "description": description}`. -- Метод `withdraw` схожий до методу `deposit`, але сума, яку він передає, повинна зберігатися у списку як від’ємне число. Якщо недостатньо коштів, то нічого додавати не потрібно. Цей метод повинен повертати `True`, якщо зняття дійсне, а в іншому випадку повертати `False`. -- Метод `get_balance`, що повертає поточний баланс категорії бюджету на основі депозитів і зняття. -- Метод `transfer`, що приймає суму або іншу бюджетну категорію як аргументи. Цей метод повинен додавати виведення суми та опис "Transfer to [Destination Budget Category]". Потім він повинен додати депозит до іншої категорії, що містить суму та опис "Transfer from [Source Budget Category]". Якщо коштів недостатньо, то нічого додавати не потрібно. Цей метод повинен повертати `True`, якщо переказ дійсний, а в іншому випадку повертати `False`. -- Метод `check_funds`, що приймає суму як аргумент. Він повертає `False`, якщо сума більша за баланс бюджетної категорії, а в іншому випадку повертає `True`. Цей метод варто використовувати обом методам `withdraw` та `transfer`. - -Якщо бюджет надрукований, то повинні відображатися: - -- Рядок заголовка із 30 символів, де назва категорії знаходиться у центрі рядка символів `*`. -- Список елементів у записі. Кожен рядок повинен показувати опис і суму. Повинні зображатися перші 23 символи опису, а потім сума. Сума повинна бути вирівняною за правим краєм, містити два десяткові знаки та відображати максимум 7 символів. -- Рядок, що показує загальну категорію. - -Ось приклад використання: - -```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") -food.transfer(50, clothing) -print(food) -``` - -І ось приклад виводу: - -```bash -*************Food************* -initial deposit 1000.00 -groceries -10.15 -restaurant and more foo -15.89 -Transfer to Clothing -50.00 -Total: 923.96 -``` - -Окрім класу `Category`, створіть функцію під назвою `create_spend_chart` (за межами класу), яка приймає список категорій як аргумент. Вона повинна повертати рядок зі стовпчиковою діаграмою. - -Діаграма повинна показувати відсотки, витрачені в кожній категорії, переданій до функції. Відсоток витраченого повинен бути розрахований лише за рахунок зняття, але не з депозитів. Внизу лівої частини графіку повинні бути мітки 0 - 100. Стовпчики у стовпчиковій діаграмі повинні бути створені із символу «o». Висота кожного стовпчика повинна бути округлена до найближчого десятка. Горизонтальна лінія під стовпчиками повинна розташовуватись в двох пробілах від кінцевого стовпчика. Назва кожної категорії повинна бути написана вертикально під стовпчиком. Вгорі повинен бути заголовок "Percentage spent by category". - -Ця функція буде тестуватися чотирма категоріями. - -Уважно розгляньте приклад виводу нижче і переконайтеся, що інтервал виводу повністю відповідає прикладу. - -```bash -Percentage spent by category -100| - 90| - 80| - 70| - 60| o - 50| o - 40| o - 30| o - 20| o o - 10| o o o - 0| o o o - ---------- - F C A - o l u - o o t - d t o - h - i - n - g -``` - -# --hints-- - -Метод `deposit` має створити певний об’єкт у змінній екземпляра головної книги. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit(self): - self.food.deposit(900, "deposit") - actual = self.food.ledger[0] - expected = {"amount": 900, "description": "deposit"} - self.assertEqual(actual, expected, 'Expected "deposit" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик методу `deposit` без опису має створити порожній опис. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_deposit_no_description(self): - self.food.deposit(45.56) - actual = self.food.ledger[0] - expected = {"amount": 45.56, "description": ""} - self.assertEqual(actual, expected, 'Expected calling "deposit" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `withdraw` має створити певний об’єкт у змінній екземпляра `ledger`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": "milk, cereal, eggs, bacon, bread"} - self.assertEqual(actual, expected, 'Expected "withdraw" method to create a specific object in the ledger instance variable.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик методу `withdraw` без опису має створити порожній опис. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - actual = self.food.ledger[1] - expected = {"amount": -45.67, "description": ""} - self.assertEqual(actual, expected, 'Expected "withdraw" method with no description to create a blank description.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `withdraw` має повернути `True`, якщо зняття відбулося. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_description(self): - self.food.deposit(900, "deposit") - good_withdraw = self.food.withdraw(45.67) - self.assertEqual(good_withdraw, True, 'Expected "withdraw" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик `food.deposit(900, "deposit")` та `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` має повернути баланс `854.33`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_get_balance(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - actual = self.food.get_balance() - expected = 854.33 - self.assertEqual(actual, expected, 'Expected balance to be 854.33') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик методу `transfer` на об’єкті категорії має створити певний елемент головної книги в цьому об’єкті категорії. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.food.ledger[2] - expected = {"amount": -transfer_amount, "description": "Transfer to Entertainment"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `transfer` має повернути `True`, якщо переказ відбувся. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - self.assertEqual(good_transfer, True, 'Expected "transfer" method to return "True".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик `transfer` на об’єкті категорії має зменшити баланс в об’єкті категорії. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - food_balance_before = self.food.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - food_balance_after = self.food.get_balance() - self.assertEqual(food_balance_before - food_balance_after, transfer_amount, 'Expected "transfer" method to reduce balance in food object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `transfer` має збільшити баланс об’єкта категорії, переданого як аргумент. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - entertainment_balance_before = self.entertainment.get_balance() - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - entertainment_balance_after = self.entertainment.get_balance() - self.assertEqual(entertainment_balance_after - entertainment_balance_before, transfer_amount, 'Expected "transfer" method to increase balance in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `transfer` має створити певний елемент головної книги в об’єкті категорії, переданого як аргумент. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - transfer_amount = 20 - good_transfer = self.food.transfer(transfer_amount, self.entertainment) - actual = self.entertainment.ledger[0] - expected = {"amount": transfer_amount, "description": "Transfer from Food"} - self.assertEqual(actual, expected, 'Expected "transfer" method to create a specific ledger item in entertainment object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `check_funds` має повернути `False`, якщо сума, передана до методу, перевищує баланс категорії. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(20) - expected = False - self.assertEqual(actual, expected, 'Expected "check_funds" method to be False') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `check_funds` має повернути `True`, якщо сума, передана до методу, не перевищує баланс категорії. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_check_funds(self): - self.food.deposit(10, "deposit") - actual = self.food.check_funds(10) - expected = True - self.assertEqual(actual, expected, 'Expected "check_funds" method to be True') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `withdraw` має повернути `False`, якщо зняття не відбулося. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - - def test_withdraw_no_funds(self): - self.food.deposit(100, "deposit") - good_withdraw = self.food.withdraw(100.10) - self.assertEqual(good_withdraw, False, 'Expected "withdraw" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `transfer` має повернути `False`, якщо переказ не відбувся. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_transfer_no_funds(self): - self.food.deposit(100, "deposit") - good_transfer = self.food.transfer(200, self.entertainment) - self.assertEqual(good_transfer, False, 'Expected "transfer" method to return "False".') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Друк екземпляра `Category` має дати інше рядкове представлення об’єкта. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - - def test_to_string(self): - self.food.deposit(900, "deposit") - self.food.withdraw(45.67, "milk, cereal, eggs, bacon, bread") - self.food.transfer(20, self.entertainment) - actual = str(self.food) - expected = "*************Food*************\\ndeposit 900.00\\nmilk, cereal, eggs, bac -45.67\\nTransfer to Entertainme -20.00\\nTotal: 834.33" - self.assertEqual(actual, expected, 'Expected different string representation of object.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -` - const out = runPython(testCode); - assert(out); - } -}) -``` - -`create_spend_chart` має надрукувати інше представлення діаграми. Переконайтеся, що всі інтервали точні. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/budget.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import budget -from importlib import reload - -reload(budget) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.food = budget.Category("Food") - self.entertainment = budget.Category("Entertainment") - self.business = budget.Category("Business") - - def test_create_spend_chart(self): - self.food.deposit(900, "deposit") - self.entertainment.deposit(900, "deposit") - self.business.deposit(900, "deposit") - self.food.withdraw(105.55) - self.entertainment.withdraw(33.40) - self.business.withdraw(10.99) - actual = budget.create_spend_chart([self.business, self.food, self.entertainment]) - expected = "Percentage spent by category\\n100| \\n 90| \\n 80| \\n 70| o \\n 60| o \\n 50| o \\n 40| o \\n 30| o \\n 20| o o \\n 10| o o \\n 0| o o o \\n ----------\\n B F E \\n u o n \\n s o t \\n i d e \\n n r \\n e t \\n s a \\n s i \\n n \\n m \\n e \\n n \\n t " - self.assertEqual(actual, expected, 'Expected different chart representation. Check that all spacing is exact.') -`); - - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Category: - pass - -def create_spend_chart(categories): - pass -``` - -# --solutions-- - -```py -class Category: - - def __init__(self, name): - self.name = name - self.ledger = [] - self.balance = 0 - self.spent = 0 - - def __str__(self): - first_line = f'{self.name.center(30, "*")}\n' - lines = '' - total = f'Total: {format(self.balance, ".2f")}' - - for n in range(len(self.ledger)): - descr = self.ledger[n]["description"][:23] - am = format(float(self.ledger[n]["amount"]), ".2f")[:7] - lines = lines + f'{descr:<23}{am:>7}\n' - - return f'{first_line}{lines}{total}' - - def deposit(self, amount, description=''): - self.ledger.append({ - 'amount': float(amount), - 'description': description - }) - self.balance = self.balance + float(amount) - - def withdraw(self, amount, description=''): - if self.check_funds(amount): - self.ledger.append({ - 'amount': -float(amount), - 'description': description - }) - self.balance = self.balance - float(amount) - self.spent = self.spent + float(amount) - return True - else: - return False - - def get_balance(self): - return self.balance - - def transfer(self, amount, category): - if self.check_funds(amount): - # withdraw - self.ledger.append({ - 'amount': -float(amount), - 'description': f'Transfer to {category.name}' - }) - self.balance = self.balance - float(amount) - # deposit - category.deposit(amount, f'Transfer from {self.name}') - - return True - else: - return False - - def check_funds(self, amount): - if float(amount) > self.balance: - return False - else: - return True - - -def create_spend_chart(categories): - total_expenses = 0 - obj = {} - col1 = [] - str = [] - final_str = 'Percentage spent by category\n' - label_max_length = 0 - label_strings = [] - - for category in categories: - total_expenses = total_expenses + category.spent - obj[category.name] = {'expenses': category.spent} - obj[category.name]['label'] = list(category.name) - if len(obj[category.name]['label']) > label_max_length: - label_max_length = len(obj[category.name]['label']) - - for category in categories: - obj[category.name]['percent'] = ( - (category.spent / total_expenses * 100) // 10) * 10 - obj[category.name]['column'] = [] - for i in range(0, 110, 10): - if obj[category.name]['percent'] >= i: - obj[category.name]['column'].insert(0, 'o') - else: - obj[category.name]['column'].insert(0, ' ') - - for i in range(0, 110, 10): - col1.insert(0, i) - - for i in range(11): - str.append("") - for key in obj: - str[i] += (f'{obj[key]["column"][i]} ') - final_str += f'{col1[i]:>3}| {str[i]}\n' - final_str += f' {"-"*(1+3*len(obj))}\n ' - - for i in range(label_max_length): - label_strings.append(' ') - for k in obj: - if len(obj[k]['label']) < label_max_length: - obj[k]['label'].extend( - f'{" "*(label_max_length-len(obj[k]["label"]))}') - - label_strings[i] += f'{obj[k]["label"][i]} ' - if i < label_max_length - 1: - label_strings[i] += '\n ' - final_str += label_strings[i] - - print(final_str) - return (final_str) - -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md deleted file mode 100644 index 5a200d3d4ea..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md +++ /dev/null @@ -1,869 +0,0 @@ ---- -id: 5e444147903586ffb414c94f -title: Калькулятор площі багатокутника -challengeType: 23 -forumTopicId: 462363 -dashedName: polygon-area-calculator ---- - -# --description-- - -У цьому проєкті ви будете використовувати об’єктноорієнтоване програмування, щоб створити класи `Rectangle` та `Square`. Клас `Square` має бути підкласом класу `Rectangle` та наслідувати його методи й атрибути. - -## Клас Rectangle - -При створенні об’єкту Rectangle ви повинні ініціалізувати його, використовуючи атрибути `width` та `height`. Клас також повинен містити наступні методи: - -- `set_width` -- `set_height` -- `get_area`: повертає площу (`width * height`) -- `get_perimeter`: повертає периметр (`2 * width + 2 * height`) -- `get_diagonal`: повертає діагональ (`(width ** 2 + height ** 2) ** .5`) -- `get_picture`: повертає рядок, який представляє фігуру лініями "\*". Кількість ліній повинна дорівнювати висоті, а кількість "\*" у кожному рядку повинна дорівнювати ширині. Наприкінці кожного рядка має бути новий рядок (`\n`). Якщо ширина або висота більші за 50, то має повернутись рядок "Too big for picture.". -- `get_amount_inside`: приймає іншу фігуру (квадрат чи трикутник) як аргумент. Повертає ту кількість разів, скільки передана фігура може поміститися у фігурі (без обертання). Наприклад, прямокутник з шириною 4 і висотою 8 може вмістити два квадрати зі сторонами 4. - -Додатково, якщо екземпляр класу `Rectangle` представлений як рядок, то він має виглядати так: `Rectangle(width=5, height=10)`. - -## Клас Square - -Клас `Square` має бути підкласом класу `Rectangle`. Коли ви створюєте об’єкт `Square`, передається довжина однієї сторони. Метод `__init__` має зберігати довжину сторони в атрибутах `width` та `height` з класу `Rectangle`. - -Клас `Square` повинен мати доступ до методів класу `Rectangle`, але також повинен містити метод `set_side`. Якщо екземпляр класу `Square` представлений у вигляді рядка, то він має виглядати так: `Square(side=9)`. - -Додатково, методи `set_width` та `set_height` на класі `Square` мають встановити як ширину, так і висоту. - -## Приклад використання - -```py -rect = Rectangle(10, 5) -print(rect.get_area()) -rect.set_height(3) -print(rect.get_perimeter()) -print(rect) -print(rect.get_picture()) - -sq = Square(9) -print(sq.get_area()) -sq.set_side(4) -print(sq.get_diagonal()) -print(sq) -print(sq.get_picture()) - -rect.set_height(8) -rect.set_width(16) -print(rect.get_amount_inside(sq)) -``` - -Цей код повинен повернути: - -```bash -50 -26 -Rectangle(width=10, height=3) -********** -********** -********** - -81 -5.656854249492381 -Square(side=4) -**** -**** -**** -**** - -8 -``` - -# --hints-- - -Клас `Square` має бути підкласом класу `Rectangle`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_subclass(self): - actual = issubclass(shape_calculator.Square, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a subclass of the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Клас `Square` має відрізнятись від класу `Rectangle`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - - def test_distinct_classes(self): - actual = shape_calculator.Square is not shape_calculator.Rectangle - expected = True - self.assertEqual(actual, expected, 'Expected Square class to be a distinct class from the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Об’єкт квадрата має бути екземпляром класу `Square` та класу `Rectangle`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_is_square_and_rectangle(self): - actual = isinstance(self.sq, shape_calculator.Square) and isinstance(self.sq, shape_calculator.Rectangle) - expected = True - self.assertEqual(actual, expected, 'Expected square object to be an instance of the Square class and the Rectangle class.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Рядковим представленням `Rectangle(3, 6)` має бути `Rectangle(width=3, height=6)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_string(self): - actual = str(self.rect) - expected = "Rectangle(width=3, height=6)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle to be "Rectangle(width=3, height=6)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Рядковим представленням `Square(5)` має бути `Square(side=5)`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_string(self): - actual = str(self.sq) - expected = "Square(side=5)" - self.assertEqual(actual, expected, 'Expected string representation of square to be "Square(side=5)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_area()` має повернути `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_area(self): - actual = self.rect.get_area() - expected = 18 - self.assertEqual(actual, expected, 'Expected area of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_area()` має повернути `25`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_area(self): - actual = self.sq.get_area() - expected = 25 - self.assertEqual(actual, expected, 'Expected area of square to be 25') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_perimeter()` має повернути `18`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_perimeter(self): - actual = self.rect.get_perimeter() - expected = 18 - self.assertEqual(actual, expected, 'Expected perimeter of rectangle to be 18') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_perimeter()` має повернути `20`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_perimeter(self): - actual = self.sq.get_perimeter() - expected = 20 - self.assertEqual(actual, expected, 'Expected perimeter of square to be 20') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(3, 6).get_diagonal()` має повернути `6.708203932499369`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_diagonal(self): - actual = self.rect.get_diagonal() - expected = 6.708203932499369 - self.assertEqual(actual, expected, 'Expected diagonal of rectangle to be 6.708203932499369') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Square(5).get_diagonal()` має повернути `7.0710678118654755`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_diagonal(self): - actual = self.sq.get_diagonal() - expected = 7.0710678118654755 - self.assertEqual(actual, expected, 'Expected diagonal of square to be 7.0710678118654755') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Екземпляр класу `Rectangle` повинен мати інше рядкове представлення після встановлення нових значень. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_set_attributes(self): - self.rect.set_width(7) - self.rect.set_height(8) - actual = str(self.rect) - expected = "Rectangle(width=7, height=8)" - self.assertEqual(actual, expected, 'Expected string representation of rectangle after setting new values to be "Rectangle(width=7, height=8)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Екземпляр класу `Square` повинен мати інше рядкове представлення після встановлення нових значень за допомогою `.set_side()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_side(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Екземпляр класу `Square` повинен мати інше рядкове представлення після встановлення нових значень за допомогою `.set_width()` або `set_height()`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_set_attributes(self): - self.sq.set_height(2) - actual = str(self.sq) - expected = "Square(side=2)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting new values to be "Square(side=2)"') - self.sq.set_width(4) - actual = str(self.sq) - expected = "Square(side=4)" - self.assertEqual(actual, expected, 'Expected string representation of square after setting width to be "Square(side=4)"') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `.get_picture()` має повернути інше рядкове представлення екземпляра `Rectangle`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_rectangle_picture(self): - self.rect.set_width(7) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "*******\\n*******\\n*******\\n" - self.assertEqual(actual, expected, 'Expected rectangle picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `.get_picture()` має повернути інше рядкове представлення екземпляра `Square`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.sq = shape_calculator.Square(5) - - def test_square_picture(self): - self.sq.set_side(2) - actual = self.sq.get_picture() - expected = "**\\n**\\n" - self.assertEqual(actual, expected, 'Expected square picture to be different.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Метод `.get_picture()` має повернути рядок `Too big for picture.`, якщо атрибути `width` або `height` більші за `50`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_big_picture(self): - self.rect.set_width(51) - self.rect.set_height(3) - actual = self.rect.get_picture() - expected = "Too big for picture." - self.assertEqual(actual, expected, 'Expected message: "Too big for picture."') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(15,10).get_amount_inside(Square(5))` має повернути `6`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - self.sq = shape_calculator.Square(5) - - def test_get_amount_inside(self): - self.rect.set_height(10) - self.rect.set_width(15) - actual = self.rect.get_amount_inside(self.sq) - expected = 6 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 6.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(4,8).get_amount_inside(Rectangle(3, 6))` має повернути `1`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_two_rectangles(self): - rect2 = shape_calculator.Rectangle(4, 8) - actual = rect2.get_amount_inside(self.rect) - expected = 1 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 1.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -`Rectangle(2,3).get_amount_inside(Rectangle(3, 6))` має повернути `0`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/shape_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py',` -import unittest -import shape_calculator -from importlib import reload -reload(shape_calculator) -class UnitTests(unittest.TestCase): - maxDiff = None - def setUp(self): - self.rect = shape_calculator.Rectangle(3, 6) - - def test_get_amount_inside_none(self): - rect2 = shape_calculator.Rectangle(2, 3) - actual = rect2.get_amount_inside(self.rect) - expected = 0 - self.assertEqual(actual, expected, 'Expected "get_amount_inside" to return 0.') -`); - const testCode = ` -from unittest import main -from importlib import reload -import test_module -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -class Rectangle: - pass - -class Square: - pass -``` - -# --solutions-- - -```py -class Rectangle: - def __init__(self, width, height): - self.width = width - self.height = height - - def __str__(self): - return f'Rectangle(width={self.width}, height={self.height})' - - def set_width(self, width): - self.width = width - - def set_height(self, height): - self.height = height - - def get_area(self): - area = self.width * self.height - return area - - def get_perimeter(self): - perimeter = self.width * 2 + self.height * 2 - return perimeter - - def get_diagonal(self): - diagonal = (self.width ** 2 + self.height ** 2) ** 0.5 - return diagonal - - def get_picture(self): - if self.width < 50 and self.height < 50: - picture = f'{"*"*self.width}\n'*self.height - return picture - else: - return 'Too big for picture.' - - def get_amount_inside(self, polygon): - h_number = self.height // polygon.height - w_number = self.width // polygon.width - repetition = h_number * w_number - return repetition - - -class Square(Rectangle): - def __init__(self, side): - self.width = side - self.height = side - - def __str__(self): - return f'Square(side={self.width})' - - def set_width(self, side): - self.width = side - self.height = side - - def set_height(self, side): - self.height = side - self.width = side - - def set_side(self,side): - self.width = side - self.height = side - -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md deleted file mode 100644 index b194c74f608..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: 5e44414f903586ffb414c950 -title: Калькулятор вірогідностей -challengeType: 23 -forumTopicId: 462364 -dashedName: probability-calculator ---- - -# --description-- - -Уявімо, що у капелюсі лежить 5 синіх, 4 червоні та 2 зелені кульки. Яка вірогідність того, що з 4 кульок, які ви витягнете, принаймні 1 буде червоною та 2 зеленими? І хоча можливо прорахувати вірогідність за допомогою вищої математики, легше буде написати програму для виконання великої кількості експериментів, щоб оцінити приблизну вірогідність. - -У цьому проєкті напишіть програму, яка визначатиме вірогідність випадкового діставання певних кульок із капелюха. - -Спочатку створіть клас `Hat` в `main.py`. Клас має приймати змінну кількість аргументів, які вказують кількість кульок всіх кольорів із капелюха. Наприклад, об’єкт класу можна створити такими способами: - -```py -hat1 = Hat(yellow=3, blue=2, green=6) -hat2 = Hat(red=5, orange=4) -hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) -``` - -Капелюх завжди створюється з принаймні однією кулькою. Аргументи, які передаються в об’єкт-капелюх, під час створення мають конвертуватися в поле класу `contents`. `contents` має бути списком рядків, де один елемент дорівнює кожній кульці у капелюсі. Кожний елемент списку має бути назвою кольору, яка позначає кульку певного кольору. Наприклад, якщо капелюх `{"red": 2, "blue": 1}`, то `contents` має бути `["red", "red", "blue"]`. - -Клас `Hat` повинен мати метод `draw`, який приймає аргумент з позначенням кількості кульок, які можна витягти з капелюха. Цей метод має випадково витягати кульки з `contents` та повертати ці кульки у вигляді списку рядків. Кульки не повинні повертатися до капелюха після того, як їх витягли (як в експерименті з урною без заміни). Якщо кількість кульок, які треба витягти, перевищує доступну кількість, поверніть усі кульки. - -Потім створіть функцію `experiment` в `main.py` (не в класі `Hat`). Ця функція повинна приймати наступні аргументи: - -- `hat`: об’єкт-капелюх з кульками, що потрібно скопіювати у функцію. -- `expected_balls`: об’єкт, який вказує на точну кількість кульок, які треба вийняти з капелюха для експерименту. Наприклад, щоб визначити вірогідність того, що ви витягнете 2 сині та 1 червону кульки з капелюха, встановіть `expected_balls` на `{"blue":2, "red":1}`. -- `num_balls_drawn`: кількість кульок, які треба витягти з капелюха в кожному експерименті. -- `num_experiments`: кількість експериментів, які треба провести. (Чим більше експериментів було проведено, тим точнішою буде вірогідність.) - -Функція `experiment` повинна повертати вірогідність. - -Допустимо, ви хочете визначити вірогідність витягти щонайменше дві червоні кульки та одну зелену, коли витягаєте п’ять кульок з капелюха, який містить шість чорних, чотири червоні та три зелені кульки. Для цього вам треба виконати `N` експериментів, порахувати скільки `M` разів ви можете витягти принаймні дві червоні кульки і одну зелену кульку та вирахувати вірогідність як `M/N`. Кожен експеримент складається з капелюха (з певними кульками), витягування декількох кульок та перевірки, чи ви витягли необхідні кульки. - -Ось так ви можете викликати функцію `experiment`, базуючись на прикладі зверху з 2000 експериментами: - -```py -hat = Hat(black=6, red=4, green=3) -probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, - num_balls_drawn=5, - num_experiments=2000) -``` - -Результат буде приблизно таким: - -```bash -0.356 -``` - -Оскільки все базується на випадкових витяганнях, то вірогідність буде злегка відрізнятися з кожним новим запуском коду. - -_Підказка: спробуйте використати вже імпортовані модулі зверху. Не ініціалізуйте випадкове початкове значення у файлі._ - - -# --hints-- - -Створення об’єкта `hat` має додати правильний вміст. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_class_contents(self): - hat = probability_calculator.Hat(red=3,blue=2) - actual = hat.contents - expected = ["red","red","red","blue","blue"] - self.assertEqual(actual, expected, 'Expected creation of hat object to add correct contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -Метод `draw` у класі `hat` має зменшити кількість елементів у вмісті. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw(self): - hat = probability_calculator.Hat(red=5,blue=2) - actual = hat.draw(2) - expected = ['blue', 'red'] - self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.') - actual = len(hat.contents) - expected = 5 - self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -Метод `draw` має поводитись правильно, якщо кількість кульок, які потрібно витягти, більша за кількість кульок в капелюсі. - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_hat_draw_2(self): - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - actual = hat.draw(20) - expected = ['yellow', 'yellow', 'yellow', 'yellow', 'yellow', 'red', 'green', 'green', 'green', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'blue', 'test'] - self.assertEqual(actual, expected, 'Expected hat draw to return all items from hat contents.') - actual = len(hat.contents) - expected = 0 - self.assertEqual(actual, expected, 'Expected hat draw to leave no items in contents.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -Метод `experiment` має повернути іншу вірогідність. - - -```js -({ - test: () => { - pyodide.FS.writeFile("/home/pyodide/probability_calculator.py", code); - pyodide.FS.writeFile( - "/home/pyodide/test_module.py", - ` -import unittest -import probability_calculator -from importlib import reload - -reload(probability_calculator) - -probability_calculator.random.seed(95) -class UnitTests(unittest.TestCase): - maxDiff = None - def test_prob_experiment(self): - hat = probability_calculator.Hat(blue=3,red=2,green=6) - probability = probability_calculator.experiment(hat=hat, expected_balls={"blue":2,"green":1}, num_balls_drawn=4, num_experiments=1000) - actual = probability - expected = 0.272 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - hat = probability_calculator.Hat(yellow=5,red=1,green=3,blue=9,test=1) - probability = probability_calculator.experiment(hat=hat, expected_balls={"yellow":2,"blue":3,"test":1}, num_balls_drawn=20, num_experiments=100) - actual = probability - expected = 1.0 - self.assertAlmostEqual(actual, expected, delta = 0.01, msg = 'Expected experiment method to return a different probability.') - ` - ); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - }, -}); -``` - -# --seed-- - -## --seed-contents-- - -```py -import copy -import random - -class Hat: - pass - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - pass -``` - -# --solutions-- - -```py -import copy -import random - -class Hat: - def __init__(self, **hat): - self.hat = hat - contents = [] - for i in hat: - for j in range(hat[i]): - contents.append(i) - self.contents = contents - - - def draw(self, number): - drawn = [] - if number >= len(self.contents): - drawn.extend(self.contents) - self.contents = [] - else: - for i in range(number): - drawn.append( - self.contents.pop(random.randrange(len(self.contents))) - ) - return drawn - -def experiment(hat, expected_balls, num_balls_drawn, num_experiments): - expected_balls_list = [] - drawn_list = [] - success = 0 - for i in expected_balls: - for j in range(expected_balls[i]): - expected_balls_list.append(i) - for j in range(num_experiments): - hat_copy = copy.deepcopy(hat) - drawn_list.append(hat_copy.draw(num_balls_drawn)) - exp_ball_list_copy = expected_balls_list[:] - for k in range(len(drawn_list[j])): - try: - ind = exp_ball_list_copy.index(drawn_list[j][k]) - exp_ball_list_copy.pop(ind) - except: - continue - if len(exp_ball_list_copy) == 0: - success += 1 - probability = success/num_experiments - return probability -``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md deleted file mode 100644 index 2cf0b6237cb..00000000000 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md +++ /dev/null @@ -1,582 +0,0 @@ ---- -id: 5e444136903586ffb414c94d -title: Калькулятор часу -challengeType: 23 -forumTopicId: 462360 -dashedName: time-calculator ---- - -# --description-- - -Напишіть функцію під назвою `add_time`, яка приймає два обов’язкових параметри та один необов’язковий параметр: - -- початковий час в 12-годинному форматі (закінчується на AM чи PM) -- проміжок часу, який позначає кількість годин та хвилин -- (необов’язково) перший день тижня, байдуже на регістр - -Функція повинна додати проміжок часу до початкового часу та повернути результат. - -Якщо результатом буде наступний день, то після часу має бути `(next day)`. Якщо результат буде за декілька днів, то після часу має бути `(n days later)`, де n — це кількість днів. - -Якщо функції задано довільний параметр першого дня тижня, то вивід має показувати день тижня у результаті. День тижня у виводі повинен бути після часу та перед кількістю днів. - -Нижче наведені приклади різних випадків, які має опрацьовувати функція. Слідкуйте за інтервалами та пунктуацією в результатах. - -```py -add_time('3:00 PM', '3:10') -# Returns: 6:10 PM - -add_time('11:30 AM', '2:32', 'Monday') -# Returns: 2:02 PM, Monday - -add_time('11:43 AM', '00:20') -# Returns: 12:03 PM - -add_time('10:10 PM', '3:30') -# Returns: 1:40 AM (next day) - -add_time('11:43 PM', '24:20', 'tueSday') -# Returns: 12:03 AM, Thursday (2 days later) - -add_time('6:30 PM', '205:12') -# Returns: 7:42 AM (9 days later) -``` - -Не імпортуйте бібліотеки Python. Припустимо, що початковий час є дійсним часом. Хвилини у проміжку часу будуть цілим числом меншим за 60, але години можуть бути будь-яким числом. - -# --hints-- -Виклик `add_time('3:30 PM', '2:12')` має повернути `'5:42 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -import time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period(self): - actual = time_calculator.add_time("3:30 PM", "2:12") - expected = "5:42 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12" to return "5:42 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик `add_time('11:55 AM', '3:12')` має повернути `'3:07 PM'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_different_period(self): - actual = time_calculator.add_time("11:55 AM", "3:12") - expected = "3:07 PM" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:55 AM", "3:12" to return "3:07 PM"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Очікується, що в кінці часу буде `'(next day)'`, якщо це наступний день. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_next_day(self): - actual = time_calculator.add_time("9:15 PM", "5:30") - expected = "2:45 AM (next day)" - self.assertEqual(actual, expected, 'Expected time to end with "(next day)" when it is the next day.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Очікується, що час зміниться з `AM` на `PM` о `12:00`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_period_change_at_twelve(self): - actual = time_calculator.add_time("11:40 AM", "0:25") - expected = "12:05 PM" - self.assertEqual(actual, expected, 'Expected period to change from AM to PM at 12:00') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Виклик `add_time('2:59 AM', '24:00')` має повернути `'2:59 AM (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four(self): - actual = time_calculator.add_time("2:59 AM", "24:00") - expected = "2:59 AM (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00" to return "2:59 AM (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик `add_time('11:59 PM', '24:05')` має повернути `'12:04 AM (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later(self): - actual = time_calculator.add_time("11:59 PM", "24:05") - expected = "12:04 AM (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05" to return "12:04 AM (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик `add_time('8:16 PM', '466:02')` має повернути `'6:18 AM (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration(self): - actual = time_calculator.add_time("8:16 PM", "466:02") - expected = "6:18 AM (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02" to return "6:18 AM (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Очікується, що буде додано `0:00`, щоб повернути початковий час. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_no_change(self): - actual = time_calculator.add_time("5:01 AM", "0:00") - expected = "5:01 AM" - self.assertEqual(actual, expected, 'Expected adding 0:00 to return initial time.') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Виклик `add_time('3:30 PM', '2:12', 'Monday')` має повернути `'5:42 PM, Monday'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_same_period_with_day(self): - actual = time_calculator.add_time("3:30 PM", "2:12", "Monday") - expected = "5:42 PM, Monday" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "3:30 PM", "2:12", "Monday" to return "5:42 PM, Monday"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - - -Виклик `add_time('2:59 AM', '24:00', 'saturDay')` має повернути `'2:59 AM, Sunday (next day)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_twenty_four_with_day(self): - actual = time_calculator.add_time("2:59 AM", "24:00", "saturDay") - expected = "2:59 AM, Sunday (next day)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "2:59 AM", "24:00", "saturDay" to return "2:59 AM, Sunday (next day)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик `add_time('11:59 PM', '24:05', 'Wednesday')` має повернути `'12:04 AM, Friday (2 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_two_days_later_with_day(self): - actual = time_calculator.add_time("11:59 PM", "24:05", "Wednesday") - expected = "12:04 AM, Friday (2 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "11:59 PM", "24:05", "Wednesday" to return "12:04 AM, Friday (2 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -Виклик `add_time('8:16 PM', '466:02', 'tuesday')` має повернути `'6:18 AM, Monday (20 days later)'`. - -```js -({ - test: () => { - pyodide.FS.writeFile('/home/pyodide/time_calculator.py', code); - pyodide.FS.writeFile('/home/pyodide/test_module.py', ` -import unittest -time_calculator -from importlib import reload - -reload(time_calculator) - - -class UnitTests(unittest.TestCase): - maxDiff = None - def test_high_duration_with_day(self): - actual = time_calculator.add_time("8:16 PM", "466:02", "tuesday") - expected = "6:18 AM, Monday (20 days later)" - self.assertEqual(actual, expected, 'Expected calling "add_time()" with "8:16 PM", "466:02", "tuesday" to return "6:18 AM, Monday (20 days later)"') - `); - const testCode = ` -from unittest import main -import test_module -from importlib import reload - -reload(test_module) -t = main(module='test_module', exit=False) -t.result.wasSuccessful() -`; - const out = runPython(testCode); - assert(out); - } -}) -``` - -# --seed-- - -## --seed-contents-- - -```py -def add_time(start, duration): - - - - - - return new_time -``` - -# --solutions-- - -```py -def add_time(start, duration, day=''): - start_arr = start[0:-3].split(':') - dur_arr = duration.split(':') - tail = '' - # converting to 24h format - if 'AM' in start: - if start_arr[0] == '12': - start_arr[0] = '00' - elif 'PM' in start: - if start_arr[0] == '12': - start_arr[0] = '12' - else: - start_arr[0] = f'{int(start_arr[0]) + 12}' - - # adding minutes - sum_m = int(start_arr[1]) + int(dur_arr[1]) - if sum_m > 59: - - if (sum_m - 60 * (sum_m//60)) < 10: - mins = f'0{(sum_m - 60 * (sum_m//60))}' - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - - else: - mins = sum_m - 60 * (sum_m//60) - dur_arr[0] = int(dur_arr[0]) + sum_m//60 - else: - if sum_m < 10: - mins = f'0{sum_m}' - else: - mins = sum_m - - #adding hours - sum_h = int(start_arr[0]) + int(dur_arr[0]) - if sum_h < 24: - hours= sum_h - #time_24 = f'{hours}:{mins}' - else: - days_after = sum_h//24 - if days_after == 1: - hours = sum_h - 24 - tail = ' (next day)' - else: - hours = sum_h - 24 * days_after - tail = f' ({days_after} days later)' - - #converting back to AM/PM - if hours == 0: - hours = 12 - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - elif hours < 12: - time = f'{hours}:{mins} AM' - final_time = f'{time}{tail}' - else: - if hours > 12: - hours = hours - 12 - time = f'{hours}:{mins} PM' - final_time = f'{time}{tail}' - - #days of the week - week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] - if day: - day = day.capitalize() - if not tail: - final_time = f'{time}, {day}' - elif tail == ' (next day)': - index = week.index(day) + 1 - if index == 7: - index = 0 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - elif tail: - index = (week.index(day) + days_after) % 7 - week_day = f', {week[index]}' - final_time = f'{time}{week_day}{tail}' - - - print('\n') - print(final_time) - print('\n') - return final_time - -``` diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md index c9f70f0ad6e..078f63f1e6a 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f33071498eb2472b87ddee4.md @@ -7,7 +7,7 @@ dashedName: step-1 # --description-- -In this project, you will learn the basics of CSS(Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. +In this project, you will learn the basics of CSS (Cascading Style Sheets) by building a cafe menu. CSS is the language used to style an HTML document. It describes how HTML elements should be displayed on the screen. Як ви дізналися в останніх кількох кроках застосунку «Cat Photo», існує базова структура, яка необхідна для початку створення вебсторінки. Every HTML document should have a `DOCTYPE` declaration and `html` element. The `DOCTYPE` tells the browser which version of HTML the document is in. And the `html` element represents the root element which contains all other elements. diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md index b359d72fa11..de7d7e5bc33 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md @@ -15,7 +15,7 @@ HTML атрибути – це спеціальні слова, як ``` -Всередині наявного елемента `img` додайте атрибут `src` з такою URL-адресою: +Inside the existing `img` element, add a `src` attribute with this URL: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg` @@ -27,7 +27,7 @@ HTML атрибути – це спеціальні слова, як assert(document.querySelector('img')); ``` -Елемент `img` повинен мати атрибут `src`. Ви або не додали атрибут, або маєте друкарську помилку. Переконайтеся, що між назвою елемента та назвою атрибуту є пробіл. +Your `img` element should have a `src` attribute. Ви або не додали атрибут, або маєте друкарську помилку. Переконайтеся, що між назвою елемента та назвою атрибуту є пробіл. ```js assert(document.querySelector('img').src); diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md index 1f4a43f0f11..0d3ec815646 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md @@ -21,7 +21,7 @@ Here is an example of turning an image into a link: # --hints-- -Ви повинні мати елемент `img` з `src` зі значенням `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. Можливо, ви випадково видалили його. +You should have an `img` element with a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`. Можливо, ви випадково видалили його. ```js assert( diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md index 89b8ee0394f..a5a1c7786a9 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -Після невпорядкованого списку додайте нове зображення зі значенням атрибута `src`: +After the unordered list, add a new image with a `src` attribute value set to: `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg` @@ -40,13 +40,13 @@ assert( ); ``` -Нове зображення не має атрибута `src`. Перевірте, чи є пробіл після назви початкового теґа та/або є пробіли перед усіма назвами атрибутів. +The new image does not have a `src` attribute. Перевірте, чи є пробіл після назви початкового теґа та/або є пробіли перед усіма назвами атрибутів. ```js assert($('section')[1].lastElementChild.hasAttribute('src')); ``` -Нове зображення повинне мати `src` зі значенням `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Переконайтеся, що значення атрибута `src` написане в лапках. +The new image should have a `src` value of `https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg`. Переконайтеся, що значення атрибута `src` написане в лапках. ```js assert( diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index cbe3dfaf6da..17040150426 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -38,7 +38,7 @@ assert( ); ``` -Третє зображення повинне мати атрибут `src` зі значенням `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. +The third image should have a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index ccc69fdb501..ecb1ac332b1 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -7,28 +7,46 @@ dashedName: step-21 # --description-- -Створіть ще один елемент `div` з класом `cat-left-inner-ear` всередині елемента `.cat-left-ear`. +Create two `div` elements, the first inside the `.cat-left-ear` element with a class of `cat-left-inner-ear`, and the second inside the `.cat-right-ear` element with a class of `cat-right-inner-ear`. # --hints-- -Не змінюйте наявний елемент `div` з класом `cat-left-ear`. +You should not change the existing `div` element with the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('div.cat-left-ear').length === 1); ``` -Ви повинні мати елемент `div` всередині елемента `.cat-left-ear`. +You should not change the existing `div` element with the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('div.cat-right-ear').length === 1); +``` + +You should have one `div` element inside your `.cat-left-ear` element. ```js assert(document.querySelectorAll('.cat-left-ear div').length === 1); ``` -Елемент `div` повинен мати клас `cat-left-inner-ear`. +You should have one `div` element inside your `.cat-right-ear` element. + +```js +assert(document.querySelectorAll('.cat-right-ear div').length === 1); +``` + +The new `div` element inside `.cat-left-ear` should have the class `cat-left-inner-ear`. ```js assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('cat-left-inner-ear')); ``` +The new `div` element inside `.cat-right-ear` should have the class `cat-right-inner-ear`. + +```js +assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); +``` + # --seed-- ## --seed-contents-- @@ -48,9 +66,11 @@ assert(document.querySelectorAll('.cat-left-ear div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md deleted file mode 100644 index d521992fd15..00000000000 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceae4d57c214e6b03576c.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: 646ceae4d57c214e6b03576c -title: Крок 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -Створіть ще один елемент `div` з класом `cat-right-inner-ear` всередині елемента `.cat-right-ear`. - -# --hints-- - -Не змінюйте наявний елемент `div` з класом `cat-right-ear`. - -```js -assert(document.querySelectorAll('div.cat-right-ear').length === 1); -``` - -Ви повинні мати елемент `div` всередині елемента `.cat-right-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div').length === 1); -``` - -Елемент `div` повинен мати клас `cat-right-inner-ear`. - -```js -assert(document.querySelectorAll('.cat-right-ear div')[0]?.classList.contains('cat-right-inner-ear')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} -``` diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index 8dd185c485d..5bfa8d61319 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -1,8 +1,8 @@ --- id: 646ceb843412c74edee27a79 -title: Крок 23 +title: Step 22 challengeType: 0 -dashedName: step-23 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md index 57fd47371ae..9200b16f8d2 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cecc9eb5c4f4f73dafd07.md @@ -1,8 +1,8 @@ --- id: 646cecc9eb5c4f4f73dafd07 -title: Крок 24 +title: Step 23 challengeType: 0 -dashedName: step-24 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md index 9f389274471..b754c9edf96 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cef0c2b98915094df7099.md @@ -1,8 +1,8 @@ --- id: 646cef0c2b98915094df7099 -title: Крок 25 +title: Step 24 challengeType: 0 -dashedName: step-25 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md index 070bba43129..041e5fe75b7 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf1206cac5f51804f49cf.md @@ -1,8 +1,8 @@ --- id: 646cf1206cac5f51804f49cf -title: Крок 26 +title: Step 25 challengeType: 0 -dashedName: step-26 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md index f52c041012d..0b963f5301c 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf2249f02ca5233d9af7c.md @@ -1,8 +1,8 @@ --- id: 646cf2249f02ca5233d9af7c -title: Крок 27 +title: Step 26 challengeType: 0 -dashedName: step-27 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md index 711a25bf844..52f6ad2d42c 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf48d8f8e1f535a1821d3.md @@ -1,8 +1,8 @@ --- id: 646cf48d8f8e1f535a1821d3 -title: Крок 28 +title: Step 27 challengeType: 0 -dashedName: step-28 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md index c0a7fbfecc9..841de71fa0a 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf6cbca98e258da65c979.md @@ -1,8 +1,8 @@ --- id: 646cf6cbca98e258da65c979 -title: Крок 29 +title: Step 28 challengeType: 0 -dashedName: step-29 +dashedName: step-28 --- # --description-- @@ -11,7 +11,7 @@ dashedName: step-29 # --hints-- -Встановіть властивість `transform` елемента `.right-ear` на `rotate(45deg)`. Не забудьте про крапку з комою. +You should set the `transform` property of your `.cat-right-ear` element to `rotate(45deg)`. Не забудьте про крапку з комою. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.transform === 'rotate(45deg)') diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md index 773c261b943..efa5d46e3ed 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cf88aa884405a11ea5bcc.md @@ -1,8 +1,8 @@ --- id: 646cf88aa884405a11ea5bcc -title: Крок 30 +title: Step 29 challengeType: 0 -dashedName: step-30 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md index 74f37558078..08a9ec2a8ca 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfc2b8e6fe95c20a819d5.md @@ -1,8 +1,8 @@ --- id: 646cfc2b8e6fe95c20a819d5 -title: Крок 31 +title: Step 30 challengeType: 0 -dashedName: step-31 +dashedName: step-30 --- # --description-- @@ -11,7 +11,7 @@ dashedName: step-31 `z-index` — це властивість, яку можна використати, щоб визначити порядок перетинних елементів HTML. Елемент з вищим `z-index` завжди буде знаходитись над елементом з нижчим `z-index`. -Щоб дізнатись, як працює `z-index`, встановіть властивість `z-index` лівого вуха на `-1`. +To see `z-index` in action, set the `z-index` property of the left ear to `-1`. # --hints-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md index d1918f63ac3..c2bc12b4404 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfd853634255d02b64cc1.md @@ -1,8 +1,8 @@ --- id: 646cfd853634255d02b64cc1 -title: Крок 32 +title: Step 31 challengeType: 0 -dashedName: step-32 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md index 7bb8d86ec45..346d123fdf1 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646cfde6ac612e5d60391f50.md @@ -1,13 +1,13 @@ --- id: 646cfde6ac612e5d60391f50 -title: Крок 33 +title: Step 32 challengeType: 0 -dashedName: step-33 +dashedName: step-32 --- # --description-- -Встановіть властивість `z-index` правого вуха на `1`, щоб воно завжди було зверху голови. +Set the `z-index` property of the right ear to `1` so it always stays over the head. # --hints-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md index 2651aa4eb7c..8a65dd63ba7 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd556d524bc61c0139bd6.md @@ -1,8 +1,8 @@ --- id: 646dd556d524bc61c0139bd6 -title: Крок 34 +title: Step 33 challengeType: 0 -dashedName: step-34 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md index 66884bae0d0..2d2a76aae91 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd6f9caa862627dd87772.md @@ -1,8 +1,8 @@ --- id: 646dd6f9caa862627dd87772 -title: Крок 35 +title: Step 34 challengeType: 0 -dashedName: step-35 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md index e83abc20310..2555a60467a 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd7cfd0cfac630c1dd520.md @@ -1,8 +1,8 @@ --- id: 646dd7cfd0cfac630c1dd520 -title: Крок 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md index f919c86c64b..09f28378d3f 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd8c79ec23463a3d0e356.md @@ -1,8 +1,8 @@ --- id: 646dd8c79ec23463a3d0e356 -title: Крок 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md index bd14f7f817d..345878e50ab 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dd9d9a729916460724f16.md @@ -1,8 +1,8 @@ --- id: 646dd9d9a729916460724f16 -title: Крок 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md index 7eaeccdbb31..8bd0726ca45 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddab8afd73764f5241bbf.md @@ -1,8 +1,8 @@ --- id: 646ddab8afd73764f5241bbf -title: Крок 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md index 3abcf3efc57..5eee164c323 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddb61ff08366570cc5902.md @@ -1,15 +1,15 @@ --- id: 646ddb61ff08366570cc5902 -title: Крок 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- Тепер почнемо працювати над очима кота. До того ж, очі матимуть зіниці. -Створіть елемент `div` з класом `cat-eyes`. Створіть два елементи `div` з відповідними класами `cat-left-eye` та `cat-right-eye` всередині елемента `cat-eyes`. +Створіть елемент `div` з класом `cat-eyes`. Inside the `.cat-eyes` element, create two `div` elements with the class `cat-left-eye` and `cat-right-eye` respectively. # --hints-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md index 9b7c560faf4..01ddf7184dc 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddd3f9f97a0667b964bdb.md @@ -1,13 +1,13 @@ --- id: 646ddd3f9f97a0667b964bdb -title: Крок 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- -Створіть ще один елемент `div` з класом `cat-left-inner-eye` всередині елемента `.cat-left-eye`. +Create two `div` elements, one with the class `cat-left-inner-eye` inside the `.cat-left-eye` element and another with the class `cat-right-inner-eye` inside the `.cat-right-eye` element. # --hints-- @@ -17,18 +17,36 @@ dashedName: step-41 assert(document.querySelectorAll('div.cat-left-eye').length === 1); ``` -Ви повинні мати елемент `div` всередині елемента `.cat-left-eye`. +You should not change the existing `div` element with the class `.cat-right-eye`. + +```js +assert(document.querySelectorAll('div.cat-right-eye').length === 1); +``` + +You should have one `div` element inside your `.cat-left-eye` element. ```js assert(document.querySelectorAll('.cat-left-eye div').length === 1); ``` -Елемент `div` повинен мати клас `cat-left-inner-eye`. +You should have one `div` element inside your `.cat-right-eye` element. + +```js +assert(document.querySelectorAll('.cat-right-eye div').length === 1); +``` + +The new `div` element inside `.cat-left-eye` should have the class `cat-left-inner-eye`. ```js assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('cat-left-inner-eye')); ``` +The new `div` element inside `.cat-right-eye` should have the class `cat-right-inner-eye`. + +```js +assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); +``` + # --seed-- ## --seed-contents-- @@ -57,9 +75,11 @@ assert(document.querySelectorAll('.cat-left-eye div')[0]?.classList.contains('ca --fcc-editable-region--
+
+
+
--fcc-editable-region-- -
diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md deleted file mode 100644 index cf7cfa13aeb..00000000000 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dddfb3a301c66ec513c56.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: 646dddfb3a301c66ec513c56 -title: Крок 42 -challengeType: 0 -dashedName: step-42 ---- - -# --description-- - -Створіть ще один елемент `div` з класом `cat-right-inner-eye` всередині елемента `.cat-right-eye`. - -# --hints-- - -Не змінюйте наявний елемент `div` з класом `cat-left-eye`. - -```js -assert(document.querySelectorAll('div.cat-right-eye').length === 1); -``` - -Ви повинні мати елемент `div` всередині елемента `.cat-right-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div').length === 1); -``` - -Елемент `div` повинен мати клас `cat-right-inner-eye`. - -```js -assert(document.querySelectorAll('.cat-right-eye div')[0]?.classList.contains('cat-right-inner-eye')); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - fCC Cat Painting - - - -
-
-
-
-
-
-
-
-
-
- -
-
-
-
- --fcc-editable-region-- -
- -
- --fcc-editable-region-- -
-
-
- - -``` - -```css -* { - box-sizing: border-box; -} - -body { - background-color: #c9d2fc; -} - -.cat-head { - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - margin: auto; - background: linear-gradient(#5e5e5e 85%, #45454f 100%); - width: 205px; - height: 180px; - border: 1px solid #000; - border-radius: 46%; -} - -.cat-left-ear { - position: absolute; - top: -26px; - left: -31px; - z-index: 1; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - transform: rotate(-45deg); - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-right-ear { - position: absolute; - top: -26px; - left: 163px; - z-index: 1; - transform: rotate(45deg); - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-left: 35px solid transparent; - border-right: 35px solid transparent; - border-bottom: 70px solid #5e5e5e; -} - -.cat-left-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} - -.cat-right-inner-ear { - position: absolute; - top: 22px; - left: -20px; - border-top-left-radius: 90px; - border-top-right-radius: 10px; - border-bottom-right-radius: 40%; - border-bottom-left-radius: 40%; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - border-bottom: 40px solid #3b3b4f; -} -``` diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md index ab27ce5475e..5de8125902e 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dde7dc20dc167489faa69.md @@ -1,8 +1,8 @@ --- id: 646dde7dc20dc167489faa69 -title: Крок 43 +title: Step 41 challengeType: 0 -dashedName: step-43 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md index 39c17eabb58..c2dbeac9137 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ddf888632fa67f1180940.md @@ -1,13 +1,13 @@ --- id: 646ddf888632fa67f1180940 -title: Крок 44 +title: Step 42 challengeType: 0 -dashedName: step-44 +dashedName: step-42 --- # --description-- -Перемістіть ліве вухо, використавши властивість `position` зі значенням `absolute`, `top` зі значенням `54px` та `left` зі значенням `39px`. +Move the left eye into position with a `position` property of `absolute`, a `top` of `54px`, and a `left` of `39px`. # --hints-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md index 0251adf3bf9..1e1f673ee14 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de5dc8988076a1d992afd.md @@ -1,8 +1,8 @@ --- id: 646de5dc8988076a1d992afd -title: Крок 45 +title: Step 43 challengeType: 0 -dashedName: step-45 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md index 042680117e7..127ddc5f934 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de6a97b50a86ac487de86.md @@ -1,8 +1,8 @@ --- id: 646de6a97b50a86ac487de86 -title: Крок 46 +title: Step 44 challengeType: 0 -dashedName: step-46 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md index 7bde1333b5c..e5778970172 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de7b64467e96b7d35b5cd.md @@ -1,8 +1,8 @@ --- id: 646de7b64467e96b7d35b5cd -title: Крок 47 +title: Step 45 challengeType: 0 -dashedName: step-47 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md index 28989277ba8..3cbace12c8b 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8478d6f796bfbdccfb2.md @@ -1,8 +1,8 @@ --- id: 646de8478d6f796bfbdccfb2 -title: Крок 48 +title: Step 46 challengeType: 0 -dashedName: step-48 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md index e260fa554ab..01e9d920a12 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646de8d204a3426c7d184372.md @@ -1,8 +1,8 @@ --- id: 646de8d204a3426c7d184372 -title: Крок 49 +title: Step 47 challengeType: 0 -dashedName: step-49 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md index 2f65f0146c6..230506e2458 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dea1c98c2426d43a705c3.md @@ -1,8 +1,8 @@ --- id: 646dea1c98c2426d43a705c3 -title: Крок 50 +title: Step 48 challengeType: 0 -dashedName: step-50 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md index 8eecfa9bf6c..3f575785499 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646deb169847f86df0f95bfc.md @@ -1,8 +1,8 @@ --- id: 646deb169847f86df0f95bfc -title: Крок 51 +title: Step 49 challengeType: 0 -dashedName: step-51 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md index a8cfc3f2ca7..ab72cce6226 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dec359bef3b7811fba5a6.md @@ -1,8 +1,8 @@ --- id: 646dec359bef3b7811fba5a6 -title: Крок 52 +title: Step 50 challengeType: 0 -dashedName: step-52 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md index 4f5b41ac252..9b11c60b2bb 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dedbcba062079128b2ecc.md @@ -1,8 +1,8 @@ --- id: 646dedbcba062079128b2ecc -title: Крок 53 +title: Step 51 challengeType: 0 -dashedName: step-53 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md index b2df27813e1..ec8430d1343 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646def5e863abf7a14501421.md @@ -1,8 +1,8 @@ --- id: 646def5e863abf7a14501421 -title: Крок 54 +title: Step 52 challengeType: 0 -dashedName: step-54 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md index 187ba7ac483..46e115208fa 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df03c8f79337ab46f148b.md @@ -1,8 +1,8 @@ --- id: 646df03c8f79337ab46f148b -title: Крок 55 +title: Step 53 challengeType: 0 -dashedName: step-55 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md index 81b2714ca6f..8d17c42db3a 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df0cf26413a7b35e4b8b3.md @@ -1,8 +1,8 @@ --- id: 646df0cf26413a7b35e4b8b3 -title: Крок 56 +title: Step 54 challengeType: 0 -dashedName: step-56 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md index 1cefe6d5aca..1ba14c5b242 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646df1d1aa4ae57bdf1869c4.md @@ -1,8 +1,8 @@ --- id: 646df1d1aa4ae57bdf1869c4 -title: Крок 57 +title: Step 55 challengeType: 0 -dashedName: step-57 +dashedName: step-55 --- # --description-- @@ -13,13 +13,13 @@ dashedName: step-57 # --hints-- -Створіть елемент `div`. +You should create a `div` element. ```js assert(document.querySelectorAll('div').length === 13) ``` -Елемент `div` повинен мати клас `cat-mouth` +Your `div` element should have the class `cat-mouth`. ```js assert(document.querySelectorAll('div')[12].classList.contains('cat-mouth')) diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md index 19672c5b976..00920d5c8f3 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646dffd8ce9ac77ec1906f2e.md @@ -1,8 +1,8 @@ --- id: 646dffd8ce9ac77ec1906f2e -title: Крок 58 +title: Step 56 challengeType: 0 -dashedName: step-58 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md index c72ba56e32d..301dc526c8b 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0417322c0e04983a5149.md @@ -1,8 +1,8 @@ --- id: 646f0417322c0e04983a5149 -title: Крок 61 +title: Step 59 challengeType: 0 -dashedName: step-61 +dashedName: step-59 --- # --description-- @@ -11,7 +11,7 @@ dashedName: step-61 # --hints-- -Ви повинні мати селектор `cat-mouth-line-left`. +You should have a `.cat-mouth-line-left` selector. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')) diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md index 4d0363060fc..2b6b2efb9a1 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f08293804a30685533c6f.md @@ -1,8 +1,8 @@ --- id: 646f08293804a30685533c6f -title: Крок 62 +title: Step 60 challengeType: 0 -dashedName: step-62 +dashedName: step-60 --- # --description-- @@ -11,7 +11,7 @@ dashedName: step-62 # --hints-- -Селектор `.cat-mouth-line-left` повинен мати властивість `transform` зі значенням `rotate(170deg)`. +Your `.cat-mouth-line-left` selector should have a `transform` property set to `rotate(170deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-left')?.transform === 'rotate(170deg)') diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md index 69c507b5a74..87e21b92967 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f09293eb3230723a62f77.md @@ -1,8 +1,8 @@ --- id: 646f09293eb3230723a62f77 -title: Крок 63 +title: Step 61 challengeType: 0 -dashedName: step-63 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md index 5d9a5b968a8..eef8bb7fd3f 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0c9a1e3360092d1bbd33.md @@ -1,8 +1,8 @@ --- id: 646f0c9a1e3360092d1bbd33 -title: Крок 64 +title: Step 62 challengeType: 0 -dashedName: step-64 +dashedName: step-62 --- # --description-- @@ -11,7 +11,7 @@ dashedName: step-64 # --hints-- -Селектор `.cat-mouth-line-left` повинен мати властивість `transform` зі значенням `rotate(165deg)`. +Your `.cat-mouth-line-right` selector should have a `transform` property set to `rotate(165deg)`. ```js assert(new __helpers.CSSHelp(document).getStyle('.cat-mouth-line-right')?.transform === 'rotate(165deg)') diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md index 82835e75ed1..6cadcd22f0a 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ce5737243098ad6e494.md @@ -1,8 +1,8 @@ --- id: 646f0ce5737243098ad6e494 -title: Крок 65 +title: Step 63 challengeType: 0 -dashedName: step-65 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md index 19c411504ea..8350c8af3a0 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0ef13604420a8744f7d4.md @@ -1,8 +1,8 @@ --- id: 646f0ef13604420a8744f7d4 -title: Крок 66 +title: Step 64 challengeType: 0 -dashedName: step-66 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md index 9b49f14e22b..8f63aadb084 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f0f7c5933560af8e7e380.md @@ -1,8 +1,8 @@ --- id: 646f0f7c5933560af8e7e380 -title: Крок 67 +title: Step 65 challengeType: 0 -dashedName: step-67 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md index b84d41594e3..05114a7c862 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f102bf87b350b593baa72.md @@ -1,8 +1,8 @@ --- id: 646f102bf87b350b593baa72 -title: Крок 68 +title: Step 66 challengeType: 0 -dashedName: step-68 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md index 8ad35d93e04..56133c722de 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f107abb89d00bb99f387a.md @@ -1,8 +1,8 @@ --- id: 646f107abb89d00bb99f387a -title: Крок 69 +title: Step 67 challengeType: 0 -dashedName: step-69 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md index c77f7322a41..3ed066594d9 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f12da0b4c5d0ca162834a.md @@ -1,8 +1,8 @@ --- id: 646f12da0b4c5d0ca162834a -title: Крок 71 +title: Step 69 challengeType: 0 -dashedName: step-71 +dashedName: step-69 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md index b2274ebbd77..f39ccc474d9 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f135eab69d90d0c6d4e9b.md @@ -1,8 +1,8 @@ --- id: 646f135eab69d90d0c6d4e9b -title: Крок 72 +title: Step 70 challengeType: 0 -dashedName: step-72 +dashedName: step-70 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md index 347500f65da..8c18a597d8d 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f159b2cffb21150b927cb.md @@ -1,8 +1,8 @@ --- id: 646f159b2cffb21150b927cb -title: Крок 73 +title: Step 71 challengeType: 0 -dashedName: step-73 +dashedName: step-71 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md index 3d50dd3db5a..b0043b7ba21 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f164bf100dd11d226161f.md @@ -1,8 +1,8 @@ --- id: 646f164bf100dd11d226161f -title: Крок 74 +title: Step 72 challengeType: 0 -dashedName: step-74 +dashedName: step-72 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md index e0886765343..14f8eea173a 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1764e2f1d212ba9785a7.md @@ -1,8 +1,8 @@ --- id: 646f1764e2f1d212ba9785a7 -title: Крок 75 +title: Step 73 challengeType: 0 -dashedName: step-75 +dashedName: step-73 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md index bb3428b54ac..41ce35ab66d 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f1802a09a171332e14630.md @@ -1,8 +1,8 @@ --- id: 646f1802a09a171332e14630 -title: Крок 76 +title: Step 74 challengeType: 0 -dashedName: step-76 +dashedName: step-74 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md index e5f1192b74d..afdc1dd8d85 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4d6c42dc5f214f4e7444.md @@ -1,8 +1,8 @@ --- id: 646f4d6c42dc5f214f4e7444 -title: Крок 77 +title: Step 75 challengeType: 0 -dashedName: step-77 +dashedName: step-75 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md index ba500c64264..3a041e1990e 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4e46e81f7021d5fd9c1d.md @@ -1,8 +1,8 @@ --- id: 646f4e46e81f7021d5fd9c1d -title: Крок 78 +title: Step 76 challengeType: 0 -dashedName: step-78 +dashedName: step-76 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md index 9a3cc3ca075..b1f834f05e4 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4f6a14e3c522d130a0d2.md @@ -1,13 +1,13 @@ --- id: 646f4f6a14e3c522d130a0d2 -title: Крок 79 +title: Step 77 challengeType: 0 -dashedName: step-79 +dashedName: step-77 --- # --description-- -Використайте селектор класу, щоб націлити елемент `cat-whisker-right-middle`, а потім перемістіть праву середню волосину за допомогою `position` зі значенням `absolute`, `top` зі значенням `127px` та `left` зі значенням `109px`. +Use a class selector to target the `.cat-whisker-right-middle` element, then move the right middle whisker into position with a `position` of `absolute`, a `top` of `127px`, and a `left` of `109px`. # --hints-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md index b3e279b38cb..7264ce0d3e8 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f4fe12b7985232bf475a5.md @@ -1,8 +1,8 @@ --- id: 646f4fe12b7985232bf475a5 -title: Крок 80 +title: Step 78 challengeType: 0 -dashedName: step-80 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md index 834eb72eb2a..99e4c4a1ac1 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f507e4d1cd323f17db4fc.md @@ -1,8 +1,8 @@ --- id: 646f507e4d1cd323f17db4fc -title: Крок 81 +title: Step 79 challengeType: 0 -dashedName: step-81 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md index 7feaac80d8d..7c8a9a39e64 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646f516dbfc1342495515625.md @@ -1,8 +1,8 @@ --- id: 646f516dbfc1342495515625 -title: Крок 82 +title: Step 80 challengeType: 0 -dashedName: step-82 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md index eee13e280e1..39e3ad399ff 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6477062778c85972eb648030.md @@ -9,7 +9,7 @@ dashedName: step-16 Тепер потрібно відцентрувати голову кота. -Надайте елементу `.cat-head` властивість позиціювання зі значенням `absolute`. Встановіть значення властивостей `right`, `left`, `top`, `bottom` на `0`, а потім встановіть властивість `margin` всіх сторін на `auto`. Це один зі способів відцентрувати елемент вертикально та горизонтально, використовуючи позиціювання CSS. +Give the `.cat-head` element a `position` property set to `absolute`. Встановіть значення властивостей `right`, `left`, `top`, `bottom` на `0`, а потім встановіть властивість `margin` всіх сторін на `auto`. Це один зі способів відцентрувати елемент вертикально та горизонтально, використовуючи позиціювання CSS. # --hints-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md index 3c47aa87ef1..bc79f509303 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a2687ef267e5934a2f93e3.md @@ -1,8 +1,8 @@ --- id: 64a2687ef267e5934a2f93e3 -title: Крок 59 +title: Step 57 challengeType: 0 -dashedName: step-59 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md index e57e0fabaad..7c954792a36 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a26ac5540c5493f4641f10.md @@ -1,8 +1,8 @@ --- id: 64a26ac5540c5493f4641f10 -title: Крок 60 +title: Step 58 challengeType: 0 -dashedName: step-60 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md index b42a685ac36..600cd3924fd 100644 --- a/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md +++ b/curriculum/challenges/ukrainian/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/64a3bcbc83e574b58c8ed048.md @@ -1,8 +1,8 @@ --- id: 64a3bcbc83e574b58c8ed048 -title: Крок 70 +title: Step 68 challengeType: 0 -dashedName: step-70 +dashedName: step-68 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 11c6611bd1a..2e2dbf4aa8f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -352,6 +352,83 @@ async () => { }; ``` +When the `#search-input` element contains an invalid Pokemon name and the `#search-button` element is clicked, an alert should appear with the text `"Pokémon not found"`. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + const numbers = '0123456789'; + const charactersLength = letters.length; + const numbersLength = numbers.length; + + + const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); + const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); + + const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; + + const randomInvalidPokeId = badName; + searchInput.value = randomInvalidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (!res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger + + assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + } + } catch (err) { + throw new Error(err); + } +}; +``` + + +When the `#search-input` element contains a valid Pokemon id and the `#search-button` element is clicked, the UI should be filled with the correct data. + +```js +async () => { + try { + const searchInput = document.getElementById('search-input'); + const searchButton = document.getElementById('search-button'); + let alertMessage; + window.alert = (message) => alertMessage = message; // Override alert and store message + + const randomValidPokeId = Math.floor(Math.random() * 1025) + 1; + searchInput.value = randomValidPokeId; + searchButton.click(); + + const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomValidPokeId.toString()); // Fetch from proxy to simulate network delay + + if (res.ok) { + await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update + + const data = await res.json(); + + const typesEl = document.getElementById('types'); + + const actualTypes = data.types.map(typeSlot => typeSlot.type.name); + + assert.lengthOf(typesEl.children, actualTypes.length); + + assert.sameMembers(actualTypes, [...typesEl.children].map(el => el.innerText.trim().toLowerCase())); + } + } catch (err) { + throw new Error(err); + } +}; +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md deleted file mode 100644 index 755d7276a8d..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -id: 635091f8dbf554575fb5aa0c -title: Крок 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Тепер потрібно повернути значення `median`. - -Як і з функцією `getMean`, ви б могли зменшити цей код до одного рядка та зменшити кількість створених змінних. Однак важливо пам’ятати: короткий код не завжди є кращим. У цьому разі зменшення кількості рядків коду призведе до того, що його важче читати та розуміти, впливаючи на майбутнє обслуговування. - -# --hints-- - -Функція `getMedian` повинна повернути значення `median`. - -```js -assert.match(getMedian.toString(), /return\s+median\s*;?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Statistics Calculator - - -

Statistics Calculator

-

Enter a list of comma-separated numbers.

-
- - - -
-
-

- The mean of a list of numbers is the average, calculated by - taking the sum of all numbers and dividing that by the count of numbers. -

-

Mean:

-

- The median of a list of numbers is the number that appears in - the middle of the list, when sorted from least to greatest. -

-

Median:

-

- The mode of a list of numbers is the number that appears most - often in the list. -

-

Mode:

-

- The range of a list of numbers is the difference between the - largest and smallest numbers in the list. -

-

Range:

-

- The variance of a list of numbers measures how far the values - are from the mean, on average. -

-

Variance:

-

- The standard deviation of a list of numbers is the square - root of the variance. -

-

- Standard Deviation: -

-
- - -``` - -```css -body { - margin: 0; - background-color: rgb(27, 27, 50); - text-align: center; - color: #fff; -} - -button { - cursor: pointer; - background-color: rgb(59, 59, 79); - border: 3px solid white; - color: white; -} - -input { - background-color: rgb(10, 10, 35); - color: white; - border: 1px solid rgb(59, 59, 79); -} - -.bold { - font-weight: bold; -} -``` - -```js -const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length; - ---fcc-editable-region-- -const getMedian = (array) => { - const sorted = array.sort((a, b) => a - b); - const median = - array.length % 2 === 0 - ? getMean([sorted[array.length / 2], sorted[array.length / 2 - 1]]) - : sorted[Math.floor(array.length / 2)]; -} ---fcc-editable-region-- - -const calculate = () => { - const value = document.querySelector("#numbers").value; - const array = value.split(/,\s*/g); - const numbers = array.map(el => Number(el)).filter(el => !isNaN(el)); - - const mean = getMean(numbers); - - document.querySelector("#mean").textContent = mean; -} -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md deleted file mode 100644 index 72218b8357c..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443b612a30b3601404c9b61.md +++ /dev/null @@ -1,285 +0,0 @@ ---- -id: 6443b612a30b3601404c9b61 -title: Крок 23 -challengeType: 0 -dashedName: step-23 ---- - -# --description-- - -Inside the `timeAgo` function, create a constant called `currentTime` and assign `new Date()` to it. - -# --hints-- - -Ви повинні мати константу під назвою `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=/); -``` - -Призначте `new Date()` до змінної `currentTime`. - -```js -assert.match(code, /const\s+currentTime\s*=\s*new\s+Date\s*\(\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md deleted file mode 100644 index 0c9999abb4d..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c4d659395d0175cd121a.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -id: 6443c4d659395d0175cd121a -title: Крок 24 -challengeType: 0 -dashedName: step-24 ---- - -# --description-- - -Create a new constant called `lastPost` and assign `new Date(time)` to it. - -# --hints-- - -Ви повинні мати константу під назвою `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=/); -``` - -Призначте `new Date(time)` до змінної `lastPost`. - -```js -assert.match(code, /const\s+lastPost\s*=\s*new\s+Date\s*\(\s*time\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md deleted file mode 100644 index 38b646f1595..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443c7e97bcc4401bc99d87b.md +++ /dev/null @@ -1,287 +0,0 @@ ---- -id: 6443c7e97bcc4401bc99d87b -title: Крок 25 -challengeType: 0 -dashedName: step-25 ---- - -# --description-- - -Create a constant called `timeDifference` that will store the difference between `currentTime` and `lastPost`. - -# --hints-- - -Ви повинні мати константу під назвою `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=/); -``` - -Призначте різницю між `currentTime` та `lastPost` до змінної `timeDifference`. - -```js -assert.match(code, /const\s+timeDifference\s*=\s*currentTime\s*-\s*lastPost\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md deleted file mode 100644 index 7c2f482dc0f..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cc3ed4a11e02329c4c0e.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: 6443cc3ed4a11e02329c4c0e -title: Крок 27 -challengeType: 0 -dashedName: step-27 ---- - -# --description-- - -Create a constant named `minutesAgo` and assign it `Math.floor(timeDifference / msPerMinute)` to get the number of minutes ago the post was created. - -# --hints-- - -Ви повинні мати константу під назвою `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=/); -``` - -Призначте `Math.floor(timeDifference / msPerMinute)` до змінної `minutesAgo`. - -```js -assert.match(code, /const\s+minutesAgo\s*=\s*Math\.floor\s*\(\s*timeDifference\s*\/\s*msPerMinute\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md deleted file mode 100644 index 4304a02875e..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443ce08c89b250267c4225a.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -id: 6443ce08c89b250267c4225a -title: Крок 28 -challengeType: 0 -dashedName: step-28 ---- - -# --description-- - -Create a constant named `hoursAgo` that will store the number of hours that have passed since the last post. You can do this by dividing `minutesAgo` by `60`, and then rounding down to the nearest whole number. - - -# --hints-- - -Ви повинні мати константу під назвою `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=/); -``` - -Призначте `Math.floor(minutesAgo / 60)` до змінної `hoursAgo`. - -```js -assert.match(code, /const\s+hoursAgo\s*=\s*Math\.floor\s*\(\s*minutesAgo\s*\/\s*60\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md deleted file mode 100644 index 9f8c8c302c2..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443cf1cca1fbb02a8a6e46e.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -id: 6443cf1cca1fbb02a8a6e46e -title: Крок 29 -challengeType: 0 -dashedName: step-29 ---- - -# --description-- - -Create a constant named `daysAgo` that will store the number of days that have passed since the last post. You can do this by dividing `hoursAgo` by `24`, and then rounding down to the nearest whole number. - - -# --hints-- - -You should declare a constant named `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=/); -``` - -Призначте `Math.floor(hoursAgo / 24)` до змінної `daysAgo`. - -```js -assert.match(code, /const\s+daysAgo\s*=\s*Math\.floor\s*\(\s*hoursAgo\s*\/\s*24\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - ---fcc-editable-region-- -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md deleted file mode 100644 index 3da5a1e439e..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d0428d7c2402e9d78709.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443d0428d7c2402e9d78709 -title: Крок 30 -challengeType: 0 -dashedName: step-30 ---- - -# --description-- - -The next step is to return the number of minutes ago the post was created. - -Create an `if` statement that checks if `minutesAgo` is less than `60`. If it is, then `return` the template literal `${minutesAgo}m ago`. - -# --hints-- - -You should create an `if` statement that checks if `minutesAgo` is less than `60`. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*.*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*minutesAgo\s*<\s*60\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -Поверніть `${minutesAgo}m ago`. - -```js -assert.match(code, /return\s*`\s*\${minutesAgo}\s*m\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md deleted file mode 100644 index d1234e6cac7..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443d6ab21742c031bea7778.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -id: 6443d6ab21742c031bea7778 -title: Крок 31 -challengeType: 0 -dashedName: step-31 ---- - -# --description-- - -Next, create another `if` statement to check if `hoursAgo` is less than `24`. If it is, then `return` the template literal `${hoursAgo}h ago`, which represents the number of hours ago the post was created. - -# --hints-- - -You should create an `if` statement that checks if `hoursAgo` is less than 24. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)/); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /if\s*\(\s*hoursAgo\s*<\s*24\s*\)\s*{?\s*return\s*`[\s\S]*`/); -``` - -Поверніть `${hoursAgo}h ago`. - -```js -assert.match(code, /return\s*`\s*\${hoursAgo}\s*h\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md deleted file mode 100644 index 2df21123967..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6443fbba1e9df4038f5af689.md +++ /dev/null @@ -1,309 +0,0 @@ ---- -id: 6443fbba1e9df4038f5af689 -title: Крок 32 -challengeType: 0 -dashedName: step-32 ---- - -# --description-- - -Below your `if` statements, return a template literal with `${daysAgo}d ago` which will show how many days ago the post was created. - -# --hints-- - -You should use a `return` statement first. - -```js -assert.match(code, /\s*}\s*return\s*[\s\S]*/); -``` - -You should use template literals after the `return` statement. - -```js -assert.match(code, /\s*}\s*return\s*`[\s\S]*`/); -``` - -Поверніть `${daysAgo}d ago`. - -```js -assert.match(code, /return\s*`\s*\${daysAgo}\s*d\s*ago\s*`\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md deleted file mode 100644 index 45a84eabc43..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ec416a1fe1017e517bd8.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -id: 6444ec416a1fe1017e517bd8 -title: Крок 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create a constant named `thousands` and assign `Math.floor(views / 1000)` to it. This will give you the number of thousands in the `views` variable rounded down to the nearest thousand. - -# --hints-- - -Ви повинні мати константу під назвою `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=/); -``` - -Призначте `Math.floor(views / 1000)` до змінної `thousands`. - -```js -assert.match(code, /\s*const\s+thousands\s*=\s*Math\.floor\(\s*views\s*\/\s*1000\s*\)\s*/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - ---fcc-editable-region-- -const viewCount = (views) => { - -}; ---fcc-editable-region-- - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md deleted file mode 100644 index 64979fc50aa..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444ed90ff671201bf007af6.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: 6444ed90ff671201bf007af6 -title: Крок 36 -challengeType: 0 -dashedName: step-36 ---- - -# --description-- - -Next, create an `if` statement that checks if `views` is greater than or equal to `1000`. If it is, return the template literal `${thousands}k`. - -# --hints-- - -You should create an `if` statement that checks if `views` is greater than or equal to `1000`. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)/)); -``` - -You should use a `return` statement inside the `if` statement. - -```js -assert(code.match(/if\s*\(\s*views\s*>=\s*1000\s*\)\s*{\s*return\s*.*/)); -``` - -You should use a template literal after the `return` statement. - -```js -assert(code.match(/return\s*`/)); -``` - -Поверніть `${thousands}k`. - -```js -assert(code.match(/return\s*`\s*\${\s*thousands\s*}\s*k\s*`\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md deleted file mode 100644 index bebdc2a7f94..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard/6444f08fae25f201f10083a9.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -id: 6444f08fae25f201f10083a9 -title: Крок 37 -challengeType: 0 -dashedName: step-37 ---- - -# --description-- - -Lastly, return the `views` variable which will show the amount of views less than 1000. - -# --hints-- - -Поверніть змінну `views`. - -```js -assert(code.match(/return\s+views\s*/)); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - fCC Forum Leaderboard - - - -
- -

Latest Topics

-
-
-
- - - - - - - - - - - -
TopicsAvatarsRepliesViewsActivity
-
-
- - - -``` - -```css -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --main-bg-color: #2a2a40; - --black: #000; - --dark-navy: #0a0a23; - --dark-grey: #d0d0d5; - --medium-grey: #dfdfe2; - --light-grey: #f5f6f7; - --peach: #f28373; - --salmon-color: #f0aea9; - --light-blue: #8bd9f6; - --light-orange: #f8b172; - --light-green: #93cb5b; - --golden-yellow: #f1ba33; - --gold: #f9aa23; - --green: #6bca6b; -} - -body { - background-color: var(--main-bg-color); -} - -nav { - background-color: var(--dark-navy); - padding: 10px 0; -} - -.fcc-logo { - width: 210px; - display: block; - margin: auto; -} - -.title { - margin: 25px 0; - text-align: center; - color: var(--light-grey); -} - -.table-wrapper { - padding: 0 25px; - overflow-x: auto; -} - -table { - width: 100%; - color: var(--dark-grey); - margin: auto; - table-layout: fixed; - border-collapse: collapse; - overflow-x: scroll; -} - -#topics { - text-align: start; - width: 60%; -} - -th { - border-bottom: 2px solid var(--dark-grey); - padding-bottom: 10px; - font-size: 1.3rem; -} - -td:not(:first-child) { - text-align: center; -} - -td { - border-bottom: 1px solid var(--dark-grey); - padding: 20px 0; -} - -.post-title { - font-size: 1.2rem; - color: var(--medium-grey); - text-decoration: none; -} - -.category { - padding: 3px; - color: var(--black); - text-decoration: none; - display: block; - width: fit-content; - margin: 10px 0 10px; -} - -.career { - background-color: var(--salmon-color); -} - -.feedback, -.html-css { - background-color: var(--light-blue); -} - -.support { - background-color: var(--light-orange); -} - -.general { - background-color: var(--light-green); -} - -.javascript { - background-color: var(--golden-yellow); -} - -.backend { - background-color: var(--gold); -} - -.python { - background-color: var(--green); -} - -.motivation { - background-color: var(--peach); -} - -.avatar-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; -} - -.avatar-container img { - width: 30px; - height: 30px; -} - -@media (max-width: 750px) { - .table-wrapper { - padding: 0 15px; - } - - table { - width: 700px; - } - - th { - font-size: 1.2rem; - } - - .post-title { - font-size: 1.1rem; - } -} -``` - -```js -const forumLatest = "https://cdn.freecodecamp.org/curriculum/forum-latest/latest.json"; -const forumTopicUrl = "https://forum.freecodecamp.org/t/"; -const forumCategoryUrl = "https://forum.freecodecamp.org/c/"; -const avatarUrl = "https://sea1.discourse-cdn.com/freecodecamp"; - -const postsContainer = document.getElementById("posts-container"); - -const timeAgo = (time) => { - const currentTime = new Date(); - const lastPost = new Date(time); - - const timeDifference = currentTime - lastPost; - const msPerMinute = 1000 * 60; - - const minutesAgo = Math.floor(timeDifference / msPerMinute); - const hoursAgo = Math.floor(minutesAgo / 60); - const daysAgo = Math.floor(hoursAgo / 24); - - if (minutesAgo < 60) { - return `${minutesAgo}m ago`; - } - - if (hoursAgo < 24) { - return `${hoursAgo}h ago`; - } - - return `${daysAgo}d ago`; -}; - -const viewCount = (views) => { - const thousands = Math.floor(views / 1000); - - if (views >= 1000) { - return `${thousands}k`; - } - ---fcc-editable-region-- - ---fcc-editable-region-- -}; - -const fetchData = async () => { - try { - const res = await fetch(forumLatest); - const data = await res.json(); - showLatestPosts(data); - } catch (err) { - console.log(err); - } -}; - -fetchData(); - -const showLatestPosts = (data) => { - const { topic_list, users } = data; - const { topics } = topic_list; - - postsContainer.innerHTML = topics.map((item) => { - const { - id, - title, - views, - posts_count, - slug, - posters, - category_id, - bumped_at, - } = item; - - return ` - - -

${title}

- - - ${posts_count - 1} - ${views} - ${timeAgo(bumped_at)} - `; - }).join(""); -}; - - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md new file mode 100644 index 00000000000..bb83c8fc9cf --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66323433f931ca32305a11f5.md @@ -0,0 +1,119 @@ +--- +id: 66323433f931ca32305a11f5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Now, CamperBot is trying to create a function that will return a random index from the `darkColorsArr`. But they have run into the following error message: + +```js +Uncaught ReferenceError: math is not defined +``` + +A `ReferenceError` is thrown when a non-existent variable is referenced. In this case, it looks like CamperBot is trying to use `math` but JavaScript doesn't have a `math` object. + +Fix CamperBot's error in the `math.random()` line and open up the console again. + +# --hints-- + +You should fix the capitalization error in the `math.random()` line. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { +--fcc-editable-region-- + console.log(darkColorsArr.length * math.random()) +--fcc-editable-region-- +} +getRandomIndex(); +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md new file mode 100644 index 00000000000..57dd6886cf2 --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663250b42513ef5975599c49.md @@ -0,0 +1,121 @@ +--- +id: 663250b42513ef5975599c49 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +Now that the `ReferenceError` is resolved, the console is displaying the correct results for a random number between `0` and `9`. But CamperBot was not expecting to see decimal numbers like these: + +```js +0.015882899879771095 +2.114596286197641 +6.040964780197666 +``` + +Update the `console` statement to print a whole number between `0` and `9`. + +Remember that you worked with a method in the Role Playing Game that rounds a number down to the nearest whole number. + +# --hints-- + +You should round `darkColorsArr.length * Math.random()` down to the nearest whole number. + +```js +assert.match(getRandomIndex.toString(), /console\.log\(\s*Math\.floor\(\s*darkColorsArr\.length\s*\*\s*Math\.random\(\s*\)\s*\)\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +function getRandomIndex() { + console.log(darkColorsArr.length * Math.random()) +} +getRandomIndex(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md new file mode 100644 index 00000000000..733b5480903 --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663255f28c59315db74d137b.md @@ -0,0 +1,125 @@ +--- +id: 663255f28c59315db74d137b +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +CamperBot is finished with building out the `getRandomIndex` function and it is working as expected. + +But now they are running into this issue when trying to create a reference to the `body` element in the DOM: + +```js +Uncaught TypeError: document.queryselector is not a function +``` + +A `TypeError` means that the code is trying to perform an operation on a value that is not of the expected type. + +Fix the `TypeError` by updating the `document.queryselector` method to the correct method name that selects an element from the DOM. + +# --hints-- + +You should update `queryselector` to use camel case. + +```js +assert.match(code, /querySelector/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + console.log(Math.floor(darkColorsArr.length * Math.random())); + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.queryselector("body"); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md new file mode 100644 index 00000000000..af54058360c --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66325a250690a3612c1db0f6.md @@ -0,0 +1,122 @@ +--- +id: 66325a250690a3612c1db0f6 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +CamperBot has created a new variable called `bgHexCodeSpanElement` to store the reference to the `span` element with the `id` of `bg-hex-code`. However, when they try to log that variable to the console, they get `null`. + +`null` is a special value in JavaScript that represents the absence of a value. This can happen when you try to access a property of an object that doesn't exist. + +In this case, CamperBot is not passing in the correct selector to the `document.querySelector` method. + +Fix the `document.querySelector("bg-hex-code")` line so that it correctly selects the element with the `id` of `bg-hex-code`. + +# --hints-- + +You should fix `"bg-hex-code"` so it correctly references the `id` of `bg-hex-code`. Remember that `id` selectors in CSS start with a hash symbol (`#`). + +```js +assert.match(bgHexCodeSpanElement.id, /bg-hex-code/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +--fcc-editable-region-- +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("bg-hex-code"); + +console.log(bgHexCodeSpanElement); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md new file mode 100644 index 00000000000..ddc652cb934 --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/663260de72634166b0800fe9.md @@ -0,0 +1,133 @@ +--- +id: 663260de72634166b0800fe9 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +CamperBot has now created a function called `changeBackgroundColor` that changes the background color of the page to a random color from the `darkColorsArr` array. The function also displays the hex code for that new color. + +When they try to test out this function, they notice that the background color is not changing and the text shows the following: + +```js +Hex Code: undefined +``` + +`undefined` is showing up here because the `color` variable is not being set correctly. + +Fix the error in the `darkColorsArr[getRandomIndex]` line so that the `color` variable is set to a random color from the `darkColorsArr` array. + +# --hints-- + +You should call the `getRandomIndex` function inside the `darkColorsArr[getRandomIndex]` line. + +```js +assert.match(changeBackgroundColor.toString(), /darkColorsArr\[\s*getRandomIndex\(\s*\)\s*\]/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +--fcc-editable-region-- +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +changeBackgroundColor(); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md new file mode 100644 index 00000000000..1dd73ecc04b --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326637df347d6ae9928853.md @@ -0,0 +1,130 @@ +--- +id: 66326637df347d6ae9928853 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +CamperBot is trying to create a new variable called `btn` to store the reference to the button element with the `id` of `click-btn` + +However, when they try to log the button element to the console, they see that the button element is `null`. + +Open up the `index.html` to see the correct `id` name for that button element. + +Then fix the error for the `document.querySelector("#click-btn");` line. + +# --hints-- + +You should fix the `id` name of `"#click-btn"` line to match the correct `id` name in the `index.html` file. + +```js +assert.match(btn.id, /btn/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +--fcc-editable-region-- +const btn = document.querySelector("#click-btn"); +console.log(btn); +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md new file mode 100644 index 00000000000..ce3d3054852 --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/66326913b729e16dd0127a36.md @@ -0,0 +1,237 @@ +--- +id: 66326913b729e16dd0127a36 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +CamperBot has finished building out their random background color changer. However, when they click the button, the background color does not change. + +It looks like they are trying to use the `onclick` property but they are using it incorrectly. The `onclick` property should be assigned a function reference. + +Fix the error in the `btn.onclick = changeBackgroundColor();` line. + +Remember that you worked with the `onclick` property in the Role playing game project. Look back at the final solution to see how `onclick` was properly used. + +Once you fix that final bug, the random background color changer will be complete! + +# --hints-- + +You should not call the `changeBackgroundColor` function. Instead, assign the function reference to the `onclick` property. + +```js +assert.strictEqual(btn.onclick, changeBackgroundColor); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +--fcc-editable-region-- +btn.onclick = changeBackgroundColor(); +--fcc-editable-region-- +``` + +# --solutions-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C", + "#616A6B", + "#4A235A", + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; + +function getRandomIndex() { + const randomIndex = Math.floor(darkColorsArr.length * Math.random()); + return randomIndex; +} + +const body = document.querySelector("body"); +const bgHexCodeSpanElement = document.querySelector("#bg-hex-code"); + +function changeBackgroundColor() { + const color = darkColorsArr[getRandomIndex()]; + + bgHexCodeSpanElement.innerText = color; + body.style.backgroundColor = color; +} +const btn = document.querySelector("#btn"); + +btn.onclick = changeBackgroundColor; + +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md new file mode 100644 index 00000000000..807f8fbf38e --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-debugging-by-building-a-random-background-color-changer/6650c9a94d6e13d14a043a69.md @@ -0,0 +1,119 @@ +--- +id: 6650c9a94d6e13d14a043a69 +title: Step 1 +challengeType: 0 +dashedName: step-1 +--- + +# --description-- + +CamperBot is trying to build out a random background color changer. But they keep running into issues and need your help to debug the code. + +CamperBot has already added the HTML and CSS for the project. But they are confused as to why none of the styles and content is showing up on the page. + +When they open up the console they see this message: + +```js +SyntaxError: unknown: Unexpected token, expected "," (5:2) +``` + +Syntax errors are thrown when the JavaScript engine encounters something it can't interpret. In this case, it looks like CamperBot has syntax errors in the `darkColorsArr` array. + +Fix the syntax errors in the `darkColorsArr` array and you should see the content and styles show up on the page. + +# --hints-- + +You should resolve the syntax errors in the `darkColorsArr` array. Remember that array elements should be separated by commas. + +```js +assert.isArray(darkColorsArr); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Build a random background color changer + + + +

Random Background Color changer

+ +
+
+

Hex Code: #110815

+
+ + +
+ + + +``` + +```css +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --yellow: #f1be32; + --golden-yellow: #feac32; + --dark-purple: #110815; + --light-grey: #efefef; +} + +body { + background-color: var(--dark-purple); + color: var(--light-grey); + text-align: center; +} + +.bg-information-container { + margin: 15px 0 25px; + font-size: 1.2rem; +} + +.btn { + cursor: pointer; + padding: 10px; + margin: 10px; + color: var(--dark-purple); + background-color: var(--golden-yellow); + background-image: linear-gradient(#fecc4c, #ffac33); + border-color: var(--golden-yellow); + border-width: 3px; +} + +.btn:hover { + background-image: linear-gradient(#ffcc4c, #f89808); +} + +``` + +```js +--fcc-editable-region-- +const darkColorsArr = [ + "#2C3E50", + "#34495E", + "#2C2C2C" + "#616A6B" + "#4A235A" + "#2F4F4F", + "#0E4B5A", + "#36454F", + "#2C3E50", + "#800020", +]; +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md index 2c4e882bb3b..63f6bd7a805 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a115879a6d51422652cbfc.md @@ -84,7 +84,7 @@ assert.equal(document.querySelector('#game')?.children?.length, 4); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md index e892820315a..b322f373429 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a1166ed9a56d439c0770e7.md @@ -74,7 +74,7 @@ assert(document.querySelectorAll('#stats > .stat')?.[2]?.innerText === 'Gold: 50 let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md index c009de8a721..53700d29dc7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23c1d505bfa13747c8a9b.md @@ -177,7 +177,7 @@ assert.equal(stat.innerText.trimEnd(), 'Gold: 50'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md index 11dcd72bb9e..1fbda470c9f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23cb9bc467a147516b500.md @@ -103,7 +103,7 @@ assert.equal(button3.innerText, 'Fight dragon'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md index 9d9c039e447..61129e91111 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a23d1c5f1c93161f3582ae.md @@ -126,7 +126,7 @@ assert.equal(spanId, 'monsterHealth'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md index 48348a01368..fa4647c4ff2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md @@ -66,7 +66,7 @@ assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dr let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md index c5021adef7b..b4904cbf05f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24068d60b671847d1d4e2.md @@ -72,7 +72,7 @@ assert.equal(background, 'rgb(10, 10, 35)'); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md index 0bc91859cca..044d513392d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2409897ec621942234cf6.md @@ -90,7 +90,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md index 4129826fe89..0bb78ad2012 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a240c67f3dbb1a1e6d95ee.md @@ -143,7 +143,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md index c344af30b9b..272a86229e0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24128d5e8af1b47ad1aab.md @@ -104,7 +104,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md index 80de7a2aaa6..336aadeabf0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a24190868ca51c0b6e83c7.md @@ -132,7 +132,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md index 8527ca50b39..180129c6d2a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a241df03c1f61ce936f5d9.md @@ -106,7 +106,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md deleted file mode 100644 index 43d5681a23f..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a488b24fb32b91155d56.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -id: 62a3a488b24fb32b91155d56 -title: Крок 7 -challengeType: 0 -dashedName: step-7 ---- - -# --description-- - -Змінним можна присвоїти значення. Якщо так зробити під час оголошення, це називається ініціалізацією. Наприклад: - -```js -let age = 32; -``` - -This would initialize the `age` variable with a value of `32`, a number. - -Ініціалізуйте змінну `xp`, щоб вона мала значення `0` (число). - -# --hints-- - -`xp` повинна мати значення `0`. - -```js -assert.equal(xp, 0); -``` - -Ініціалізуйте змінну `xp` значенням `0`. Не забудьте про крапку з комою в кінці рядка. - -```js -assert.match(code, /let\s+xp\s*=\s*0\s*;/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md index 884b701a72f..0192f6d5cbf 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3a7e4f1060e2fc5ffb34b.md @@ -7,32 +7,32 @@ dashedName: step-8 # --description-- -Create another variable called `currentWeapon` and set it to `0`. +Create another variable called `currentWeaponIndex` and set it to `0`. # --hints-- -You should use `let` to declare a variable called `currentWeapon`. +You should use `let` to declare a variable called `currentWeaponIndex`. ```js -assert.match(code, /let\s+currentWeapon/i); +assert.match(code, /let\s+currentWeaponIndex/i); ``` Використайте верблюдячийРегістр, щоб назвати змінну. ```js -assert.match(code, /currentWeapon/); +assert.match(code, /currentWeaponIndex/); ``` -Ваша змінна `currentWeapon` повинна бути встановлена на `0`. +Your `currentWeaponIndex` variable should be set to `0`. ```js -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` Ініціалізуйте змінну значенням `0`. ```js -assert.match(code, /let\s+currentWeapon\s*=\s*0/); +assert.match(code, /let\s+currentWeaponIndex\s*=\s*0/); ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md index a48be5d1758..27cc68bfac5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b3eab50e193608c19fc6.md @@ -54,6 +54,6 @@ assert.match(code, /let\s+fighting\s*;?/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md index b9f744663ec..47b671c2cd1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b41c9494f937560640ab.md @@ -93,7 +93,7 @@ assert.include(inventory, "stick"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; --fcc-editable-region-- ``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md deleted file mode 100644 index 2bcdc7f27bb..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b49686792938718b90d3.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b49686792938718b90d3 -title: Крок 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Всі присвоєні змінні мають значення, що є числами. JavaScript має декілька різних типів даних. Наступний, який ви використаєте, — це рядок. Рядки використовують, щоб зберегти слова та текст. Рядки оточені подвійними, одинарними або зворотними лапками. Ось приклад оголошення змінної рядком: - -```js -let developer = "Naomi"; -``` - -Присвойте змінній `inventory` значення `stick`. - -# --hints-- - -Встановіть `inventory` на рядок `stick`. - -```js -assert.equal(inventory, "stick"); -``` - -Ініціалізуйте змінну `inventory` рядком `stick`. - -```js -assert.match(code, /let\s+inventory\s*=\s*('|"|`)stick\1/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md deleted file mode 100644 index 9ff47c11915..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b506dbaead396f58a701.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -id: 62a3b506dbaead396f58a701 -title: Крок 13 -challengeType: 0 -dashedName: step-13 ---- - -# --description-- - -В інвентарі гравця вашої гри буде декілька предметів. Вам потрібно використати той тип даних, який може так зробити. Для утримання декількох значень можна використати масив. Наприклад: - -```js -let order = ["first", "second", "third"]; -``` - -Це масив, який містить три значення. Зверніть увагу, що значення розділені комами. - -Change your `inventory` variable to be an array with the strings `"stick"`, `"dagger"`, and `"sword"`. - -# --hints-- - -Змінна `inventory` має бути масивом. - -```js -assert.isArray(inventory); -``` - -Змінна `inventory` повинна мати три значення. - -```js -assert.lengthOf(inventory, 3); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -Your `inventory` variable should include the string `"dagger"`. - -```js -assert.include(inventory, "dagger"); -``` - -Your `inventory` variable should include the string `"sword"`. - -```js -assert.include(inventory, "sword"); -``` - -Змінна `inventory` повинна мати значення в правильному порядку. - -```js -assert.deepEqual(inventory, ["stick", "dagger", "sword"]); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = "stick"; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md deleted file mode 100644 index 8d4791ee16d..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b5843544ce3a77459c27.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: 62a3b5843544ce3a77459c27 -title: Крок 14 -challengeType: 0 -dashedName: step-14 ---- - -# --description-- - -For now, you want the player to start with just the `"stick"`. Change the `inventory` array to have `"stick"` as its only value. - -# --hints-- - -Змінна `inventory` досі має бути масивом. - -```js -assert.isArray(inventory); -``` - -Змінна `inventory` повинна мати лише одне значення. - -```js -assert.lengthOf(inventory, 1); -``` - -Your `inventory` variable should include the string `"stick"`. - -```js -assert.include(inventory, "stick"); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - RPG - Dragon Repeller - - - -
-
- - -``` - -```js ---fcc-editable-region-- -let xp = 0; -let health = 100; -let gold = 50; -let currentWeapon = 0; -let fighting; -let monsterHealth; -let inventory = ["stick", "dagger", "sword"]; ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md index 6d9722e97d0..1db8014aa20 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3b79d520a7f3d0e25afd6.md @@ -75,7 +75,7 @@ assert.match(code, /querySelector\(\s*('|")#button1\1\s*\)/); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md index d073f386279..1ab3dd7e964 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bb9aeefe4b3fc43c6d7b.md @@ -61,7 +61,7 @@ assert.deepEqual(button1, document.querySelector("#button1")); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md index fa3f4e3bce3..98b095db0de 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3bec30ea7f941412512dc.md @@ -176,7 +176,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md index bb1cdb828e1..9302ea4d54c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c0ab883fd9435cd5c518.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md index c427b85cc17..2c561f662a7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c2fccf186146b59c6e96.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md index 066240d7a1a..fe9d6482e04 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c4a0e52767482c5202d4.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md index a07a0df8eb0..ece42a52754 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c668afc43b4a134cca81.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md index 92c70f4315b..8968a67f06c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c8bf3980c14c438d2aed.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md index 8111c065651..90364d0942b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3c91a2bab1b4d6fabb726.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md index eb9aadeeef5..1954cd42f23 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cdb11478a34ff4a6470d.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md index 93bccd284f7..8ceb00ac5b3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a3cfc8328d3351b95d4f61.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md index 4c30dab7958..73e93ee86b6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7beb1ad61211ac153707f.md @@ -148,7 +148,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md index b06a852f497..c6511f840ed 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bf06d2ad9d1c5024e833.md @@ -174,7 +174,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md index 6d4f6deedbd..74f8d7a80b1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfabe119461eb13ccbd6.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md index 5969e1dc784..5ac363a3f82 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7bfd9179b7f1f6a15fb1e.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md index 656d8e51f6f..d626ef0bc93 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c011eef9fb2084b966db.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md index 8c2274e68d9..180c6edb2cc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c071219da921758a35bb.md @@ -144,7 +144,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md index ea865756dc9..742336220fa 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7c23e6b511f22ed71197a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md index dbe236c6a3f..fc5087bdeb0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a7cc99577fbf25ee7a7d76.md @@ -130,7 +130,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md index 7e2dc3117f1..8eb70635c17 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a929e4260d08093756d2.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md index 5a78a88c942..3e3961a665f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8a9d876b2580943ba9351.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md deleted file mode 100644 index 1b2a0d569cd..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -id: 62a8aa98a8289d0a698eee1d -title: Крок 53 -challengeType: 0 -dashedName: step-53 ---- - -# --description-- - -Властивості об’єкта записуються парами `key: value`, де `key` – ім’я властивості (або ключа), а `value` – значення властивості. For example, here is an object with a key of `name` set to `"Quincy Larson"`. - -```js -{ - name: "Quincy Larson" -} -``` - -Add a `name` property to your empty object and give it a value of `"town square"`. - -# --hints-- - -Ваше перше значення `locations` повинне бути об’єктом. - -```js -assert.isObject(locations[0]); -``` - -Ваше перше значення `locations` повинне мати властивість `name`. - -```js -assert.isDefined(locations[0].name); -``` - -Your first value of `locations` should have a `name` property with a value of `"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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md index da6564461ad..4173508357b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md @@ -139,7 +139,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md index 2d23ca2d961..e9551c89fcc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md index 90caa501cdc..477d6ba02a0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md index dbc8da5bd91..3e51a790d70 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ade9b2f5b30ef0b606c2.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md index a498ab17815..3d4bf7f1c96 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md @@ -171,7 +171,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md index c51e30c1185..eb00ce84d96 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b0b5053f16111b0b6b5f.md @@ -154,7 +154,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md index 49dcd070b95..cbfb60c88b4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md index ccbaa151c02..a8f8a724e51 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md index 756d6967ddb..50ff57aa96a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md index 9b5260dab61..18ff9b2efd2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md index b4a0df65490..04c49ed1a42 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md index 69288ecb4e1..88610822650 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md index 91dac7f2a0f..38e22ada1ec 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c1154d3ae11aee80353f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md index cc0e0a0d647..951b21c5bab 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c151b23bf21bc7c4fcba.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md index a90c7e9d64a..e4abb82a936 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c173949f851c83c64756.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md index 55c15041db3..4ec990ff420 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c242b25a531f2909e5bc.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md index 16125d74272..fd611358d0a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c2bbbd8aa82052f47c53.md @@ -160,7 +160,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md index 2e6399290b4..c702eb2552b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c31ec0ec78216a1c36a0.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md index 7ab4df317cf..938543e5b08 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c370ad8c68227137e0bc.md @@ -116,7 +116,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md index 7a86c5f81ef..742d7a6961d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c3ebc6c35e23785e1a19.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md index f832d5596ed..12d3c2d118e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c41ecaf1bd24536129b8.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md index 13fc8b82599..c0a541b7f86 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c465fa7b0c252f4a8f0c.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md index 104f6ef32f0..32d34dece90 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c4db0710f3260f867a92.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md deleted file mode 100644 index fa3a97590e7..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c56247609626fa4a8d6e.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -id: 62a8c56247609626fa4a8d6e -title: Step 77 -challengeType: 0 -dashedName: step-77 ---- - -# --description-- - -Рядок `condition` – це лише заповнювач. Змініть умову інструкції `if`, щоб перевіряти, чи `gold` більше чи дорівнює `10`. - -Ось інструкція `if` яка перевіряє, чи `num` більше чи дорівнює `5`: - -```js -if (num >= 5) { - -} -``` - -# --hints-- - -Ваша інструкція `if` повинна перевіряти, чи `gold` більше чи дорівнює `10`. - -```js -assert.match(buyHealth.toString(), /if\s*\(gold\s*>=\s*10\)/); -``` - -Ваша функція `buyHealth` повинна оновлювати `health` та `gold`, якщо `gold` більше чи дорівнює `10`. - -```js -gold = 10; -health = 10; -buyHealth(); -assert.equal(health, 20); -assert.equal(gold, 0); -const healthElement = document.getElementById('healthText'); -assert.equal(healthElement.innerText, '20'); -const goldElement = document.getElementById('goldText'); -assert.equal(goldElement.innerText, '0'); -``` - -Ваша функція `buyHealth` не повинна оновлювати `health` та `gold`, якщо `gold` менше ніж `10`. - -```js -gold = 5; -health = 10; -buyHealth(); -assert.equal(health, 10); -assert.equal(gold, 5); -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerText = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function fightDragon() { - console.log("Fighting dragon."); -} - ---fcc-editable-region-- -function buyHealth() { - if ("condition") { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } -} ---fcc-editable-region-- - -function buyWeapon() { - -} - -function fightSlime() { - -} - -function fightBeast() { - -} -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md index 81aff640a68..e1d5ef8ec7c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c5db7888af27af23f0dd.md @@ -123,7 +123,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md index 97db0cffb89..2191795c5dc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c65b75664c28a8e59c16.md @@ -115,7 +115,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md index c2fc6a92d20..b0ff881f57f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c6815f5f1a29735efe1b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md index 068748ed82c..ac7bbaf1072 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7322e42962ad53ad204.md @@ -143,7 +143,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md index 21f2262d35e..e00993d4c8c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c7a59e72c02bb1c717d2.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md index ae66b18975e..534ba03326b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c89e4272512d44fc1c66.md @@ -122,7 +122,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md index 49270ff9f28..d09b6d83b2c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c8cee8e5cf2e001789b4.md @@ -7,34 +7,34 @@ dashedName: step-84 # --description-- -Значення змінної `currentWeapon` відповідає індексу в масиві `weapons`. The player starts with a `"stick"`, since `currentWeapon` starts at `0` and `weapons[0]` is the `"stick"` weapon. +The value of the `currentWeaponIndex` variable corresponds to an index in the `weapons` array. The player starts with a `"stick"`, since `currentWeaponIndex` starts at `0` and `weapons[0]` is the `"stick"` weapon. -У функції `buyWeapon` використайте складене присвоєння, щоб додати `1` до `currentWeapon`: користувач купляє наступну зброю у масиві `weapons`. +In the `buyWeapon` function, use compound assignment to add `1` to `currentWeaponIndex` - the user is buying the next weapon in the `weapons` array. # --hints-- -Ви повинні використати складене присвоювання, щоб додати один до `currentWeapon`. +You should use compound assignment to add one to `currentWeaponIndex`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` -Ваша функція `buyWeapon` повинна збільшити `currentWeapon` на `1`. +Your `buyWeapon` function should increase `currentWeaponIndex` by `1`. ```js gold = 30; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 1); +assert.equal(currentWeaponIndex, 1); ``` Ваш код повинен бути у вашій інструкції `if`. ```js gold = 20; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); -assert.equal(currentWeapon, 0); +assert.equal(currentWeaponIndex, 0); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md index 8f5480e4ec3..1bd4b3f4533 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ca22d29fe62f3952bdf5.md @@ -16,20 +16,20 @@ num++; console.log(num); ``` -Змініть своє присвоювання `currentWeapon`, щоб використати оператор інкременту. +Change your `currentWeaponIndex` assignment to use the increment operator. # --hints-- -Ви повинні використати оператор інкременту, щоб збільшити `currentWeapon` на `1`. +You should use the increment operator to increase `currentWeaponIndex` by `1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\+\s*\+/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\+\s*\+/); ``` -Ви не повинні використовувати складене присвоювання, щоб збільшити `currentWeapon` на `1`. +You should not use compound assignment to increase `currentWeaponIndex` by `1`. ```js -assert.notMatch(buyWeapon.toString(), /currentWeapon\s*\+=\s*1/); +assert.notMatch(buyWeapon.toString(), /currentWeaponIndex\s*\+=\s*1/); ``` # --seed-- @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,7 +209,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon += 1; + currentWeaponIndex += 1; } } --fcc-editable-region-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md index fcc7ee095e7..6c4c1c8a10e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cb19bd7f8a304e5427a1.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,7 +200,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; } } --fcc-editable-region-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md index 342f04b386e..9c31111c9ee 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cbd1e3595431d5a2b3f1.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -213,7 +213,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md index 81c4698b783..69d3b4ea373 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cce1b0c32c33017cf2e9.md @@ -7,7 +7,7 @@ dashedName: step-88 # --description-- -Використайте дужкову нотацію, щоб отримати доступ до об’єкта в межах масиву `weapons` та присвойте його до змінної `newWeapon`. Розмістіть змінну `currentWeapon` у дужки. +Використайте дужкову нотацію, щоб отримати доступ до об’єкта в межах масиву `weapons` та присвойте його до змінної `newWeapon`. Place the variable `currentWeaponIndex` within the brackets. Коли ви використовуєте змінну в дужковій нотації, ви отримуєте доступ до властивості або індексу за *значенням* цієї змінної. @@ -19,10 +19,10 @@ let value = array[index]; # --hints-- -Ви повинні оновити `newWeapon` на значення `weapons[currentWeapon]`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex]`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -202,7 +202,7 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; let newWeapon = weapons; text.innerText = "You now have a new weapon."; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md index 3a8de8c6c5f..dadb5415d32 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce1dfc990134162b3bd9.md @@ -7,14 +7,14 @@ dashedName: step-89 # --description-- -`weapons[currentWeapon]` є об’єктом. Використовуйте крапкову нотацію, щоб отримати властивість `name` цього об’єкта. +`weapons[currentWeaponIndex]` is an object. Використовуйте крапкову нотацію, щоб отримати властивість `name` цього об’єкта. # --hints-- -Ви повинні оновити `newWeapon` на значення `weapons[currentWeapon].name`. +You should update `newWeapon` to have the value of `weapons[currentWeaponIndex].name`. ```js -assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*;?/); +assert.match(buyWeapon.toString(), /newWeapon\s*=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*;?/); ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -194,9 +194,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon]; + let newWeapon = weapons[currentWeaponIndex]; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md index 84a2a9d60da..94d0a7dbb62 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ce73d0dce43468f6689c.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,9 +216,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a new weapon."; } } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md index 638d90a3365..c1d0255cefa 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8cf22272d6d35af80d4ac.md @@ -35,7 +35,7 @@ assert.match(buyWeapon.toString(), /inventory\.push\s*\(\s*newWeapon\s*\)/) ```js inventory = []; -currentWeapon = 0; +currentWeaponIndex = 0; buyWeapon(); assert.deepEqual(inventory, ["dagger"]); ``` @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -217,9 +217,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md index bac9d260d88..be42aa276e9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0337d7c67377a4a76c6.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -209,9 +209,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md index d7997567d45..4d43f05923d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d08668fa8b38732486e9.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,9 +200,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: "; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md index f0b274de70d..ee38ddc9902 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0c4f12c2239b6618582.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -215,9 +215,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md index 768c1ea25c5..2c90404a9de 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d0fdf2dad83a92883a80.md @@ -7,20 +7,20 @@ dashedName: step-95 # --description-- -Як тільки гравець має найкращу зброю, він не може купити ще одну. Загорніть весь свій код у функції `buyWeapon` всередині іншої інструкції `if`. Умова повинна перевіряти, чи `currentWeapon` менше за `3` – індекс останньої зброї. +Як тільки гравець має найкращу зброю, він не може купити ще одну. Загорніть весь свій код у функції `buyWeapon` всередині іншої інструкції `if`. The condition should check if `currentWeaponIndex` is less than `3` - the index of the last weapon. # --hints-- -Ви повинні мати нову інструкцію `if`, яка перевіряє, чи `currentWeapon` менше за `3`. +You should have a new `if` statement that checks if `currentWeaponIndex` is less than `3`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*\<\s*3/) +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*\<\s*3/) ``` Ваша наявна інструкція `if` повинна бути в новій інструкції `if`. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 50; buyWeapon(); assert.equal(gold, 50); @@ -29,7 +29,7 @@ assert.equal(gold, 50); Ваша наявна інструкція `else` повинна бути в новій інструкції `if`. ```js -currentWeapon = 5; +currentWeaponIndex = 5; gold = 10; buyWeapon(); assert.notEqual(text.innerText, "You do not have enough gold to buy a weapon."); @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,9 +212,9 @@ function buyHealth() { function buyWeapon() { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md index c2f7cf4f3ff..eed45087f07 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d143f2a58e3b6d6e9c33.md @@ -9,7 +9,7 @@ dashedName: step-96 Масиви мають властивість `length`, яка повертає кількість об'єктів у масиві. У майбутньому вам доведеться додати нові значення до масиву `weapons`. -Змініть свою умову `if` так, щоб вона перевіряла, чи `currentWeapon` менше за довжину масиву `weapons`. Приклад визначення довжини масиву `myArray` виглядатиме як `myArray.length`. +Change your `if` condition to check if `currentWeaponIndex` is less than the length of the `weapons` array. Приклад визначення довжини масиву `myArray` виглядатиме як `myArray.length`. # --hints-- @@ -19,10 +19,10 @@ dashedName: step-96 assert.match(buyWeapon.toString(), /weapons\.length/); ``` -Ваша інструкція `if` повинна перевіряти, чи `currentWeapon` менше за `weapons.length`. +Your `if` statement should check if `currentWeaponIndex` is less than `weapons.length`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length/); ``` # --seed-- @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < 3) { + if (currentWeaponIndex < 3) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md index d3d8bbc9e43..cc5e11d8bd6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d1c72e8bb13c2074d93c.md @@ -9,7 +9,7 @@ dashedName: step-98 When you were testing your function, you should have seen an error message in the console. This error is due to the condition in the `buyWeapon` function. -Змінна `currentWeapon` є індексом масиву `weapons`, але індексування масиву починається з нуля. Індекс останнього елемента в масиві на один менший, ніж довжина масиву. +The `currentWeaponIndex` variable is the index of the `weapons` array, but array indexing starts at zero. Індекс останнього елемента в масиві на один менший, ніж довжина масиву. Змініть умову `if` так, щоб вона перевіряла `weapons.length - 1` замість `weapons.length`. @@ -23,10 +23,10 @@ Test out your `buyWeapon` function again to see the error message disappear. assert.match(buyWeapon.toString(), /weapons\.length\s*-\s*1/); ``` -Ваша умова повинна перевіряти, чи `currentWeapon` менше за `weapons.length - 1`. +Your condition should check if `currentWeaponIndex` is less than `weapons.length - 1`. ```js -assert.match(buyWeapon.toString(), /currentWeapon\s*<\s*weapons\.length\s*-\s*1/); +assert.match(buyWeapon.toString(), /currentWeaponIndex\s*<\s*weapons\.length\s*-\s*1/); ``` # --seed-- @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -204,12 +204,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md index 2a6fe6d6481..41320c1ae33 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2146a3e853d0a6e28ca.md @@ -31,7 +31,7 @@ assert.match(buyWeapon.toString(), /('|")You already have the most powerful weap You should modify your `text.innerText` to `"You already have the most powerful weapon!"` within your outer `else` statement. ```js -currentWeapon = 5; +currentWeaponIndex = 5; buyWeapon(); assert.equal(text.innerText, "You already have the most powerful weapon!"); ``` @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 250; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md index 0a090a0d8a6..5961108598e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d24c97461b3ddb9397c8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -212,12 +212,12 @@ function buyHealth() { --fcc-editable-region-- function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md index b834f16c025..8533aece111 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d2e2a073be3edb46116f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md index 0358e111d1d..41eb418c913 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d31ebbc10e3fe1b28e03.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -197,12 +197,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md index 933b27e3cbf..00e4327d05b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d35660db4040ba292193.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +206,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md index 110013f1ce0..a0eb66cd9ab 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d382cd075f4169223e14.md @@ -9,10 +9,6 @@ dashedName: step-105 The next step is to create a variable called `currentWeapon`. -Зверніть увагу, що ви вже маєте змінну `currentWeapon` десь у своєму коді. Since this new `currentWeapon` variable will be inside an `if` statement, it will be scoped only to that block of code. - -Scope is the term used to describe where a variable can be accessed. If a variable is declared inside a block of code, it is only accessible to the code inside that block. This is called block scope. - ```js let num = 1; if (num === 1) { @@ -121,7 +117,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -206,12 +202,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md index c21326b5074..e76f01a4e70 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d539dc11cb42b5dd7ec8.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md index 76385e36cee..08df5f1a846 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d61ddfe35744369365b7.md @@ -26,13 +26,13 @@ assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1/); You should add the value of `currentWeapon` to the `"You sold a "` string. Використайте оператор конкатенації, щоб зробити це в тому самому рядку. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*\_currentWeapon/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a\s\1\s*\+\s*currentWeapon/); ``` You should add the string `"."` to the value of `currentWeapon`. Використайте оператор конкатенації, щоб зробити це в тому самому рядку. ```js -assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*\_currentWeapon\s+\+\s+('|")\.\2/); +assert.match(sellWeapon.toString(), /text\.innerText\s*=\s*('|")You sold a \1\s*\+\s*currentWeapon\s+\+\s+('|")\.\2/); ``` Ваш `text.innerText` повинен оновитися до правильного рядка. @@ -133,7 +133,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md index fc0daff9f36..9a2ae221698 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d6c7001ebc45350e3d16.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -211,12 +211,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md index 7e60bcd7037..dcb362872da 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d7b8ab568b4649998954.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -205,12 +205,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md index b10d4991b68..5b06e1c18af 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8d81f539f004776dd9b1e.md @@ -190,7 +190,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -274,12 +274,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md index 43a16e055b3..6e34a7c77a1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd468debb449b4454086.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -210,12 +210,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md index 4c3d7e73fe0..10d4cb24584 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dd9cdb16324b04cfd958.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -218,12 +218,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md index 697edf59bfe..7bd4efce0ff 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8dfcf7fb1044d2f478fd1.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md index 1ac02694142..89ae2056ff9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e0d1d0110b4ec421489f.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md index 518fed21729..a3a6dd1117b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e142f7f0bd4fed898de3.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md index 7039263bd09..231f4b1f355 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e1dc897df55108bcb5e8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md index 752f9293c80..a4817a07bde 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e21398ad61520edb724f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md index 3aa4d034ee9..c0f2691856a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e24c673b075317cc0b09.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md index 05907bab6b8..db075a5729a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e271f8e3d1541f9624ad.md @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md index 20f0e75c272..9bce171afef 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e35675c18c56354c08cf.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md index 3237469ee03..585f7d23809 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e41e2f190c58404dd46e.md @@ -30,16 +30,16 @@ You should add the string `" You attack it with your "` to the `text.innerText` assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1/); ``` -Ви повинні використати оператор конкатенації, щоб додати поточну зброю до рядка. Поточну зброю можна отримати за допомогою `weapons[currentWeapon].name`. +Ви повинні використати оператор конкатенації, щоб додати поточну зброю до рядка. You can get the current weapon with `weapons[currentWeaponIndex].name`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name/); ``` You should use the concatenation operator to end your string with `"."`. ```js -assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.name\s*\+\s*('|")\.\2/); +assert.match(attack.toString(), /text\.innerText\s*\+=\s*('|") You attack it with your \1\s*\+\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.name\s*\+\s*('|")\.\2/); ``` # --seed-- @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md index b21f4d1f317..eeba3c80d83 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e45cc600c3591cee671a.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -273,7 +273,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; } --fcc-editable-region-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md index 1f57a8d809b..cd8a4d8e85d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e49f4df7af5ae2d7a616.md @@ -9,7 +9,7 @@ dashedName: step-123 Set `monsterHealth` to `monsterHealth` minus the power of the player's current weapon. -Remember that you can access the power of the player's current weapon using `weapons[currentWeapon].power`. +Remember that you can access the power of the player's current weapon using `weapons[currentWeaponIndex].power`. # --hints-- @@ -19,22 +19,22 @@ You should use compound assignment to modify the `monsterHealth` variable. assert.match(attack.toString(), /monsterHealth\s*-=/); ``` -You should use bracket notation with `currentWeapon` to access `weapons`. +You should use bracket notation with `currentWeaponIndex` to access `weapons`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]/); ``` -You should use dot notation to access the `power` property of `weapons[currentWeapon]`. +You should use dot notation to access the `power` property of `weapons[currentWeaponIndex]`. ```js -assert.match(attack.toString(), /weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` You should subtract the `power` of the current weapon from `monsterHealth`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power/); ``` # --seed-- @@ -126,7 +126,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -230,12 +230,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -287,7 +287,7 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md index 104d6fe8487..60961a5d4fb 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8e4dc6a60f85bf256a0cb.md @@ -11,7 +11,7 @@ The `Math` object in JavaScript contains static properties and methods for mathe З їх використанням ви можете згенерувати випадкове число в межах діапазону. For example, this generates a random number between `1` and `5`: `Math.floor(Math.random() * 5) + 1;`. -Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeapon].power`. +Following this pattern, use the addition operator (`+`) to add a random number between `1` and the value of `xp` to your `monsterHealth -= weapons[currentWeaponIndex].power`. # --hints-- @@ -21,10 +21,10 @@ Following this pattern, use the addition operator (`+`) to add a random number b assert.lengthOf(attack.toString().match(/monsterHealth/g), 1); ``` -Ви повинні додати до значення `weapons[currentWeapon].power`. +You should add to the `weapons[currentWeaponIndex].power` value. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+/); ``` Ви повинні використати `Math.floor()`. @@ -60,7 +60,7 @@ assert.match(attack.toString(), /Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(? Ви повинні додати результат `Math.floor(Math.random() * xp) + 1` до результату `weapons[currentWeapon].power`. ```js -assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); +assert.match(attack.toString(), /monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp(?:\s*\+\s*1)?\s*\)(?:\s*\+ 1)?/); ``` # --seed-- @@ -152,7 +152,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -256,12 +256,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -313,10 +313,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; --fcc-editable-region-- - monsterHealth -= weapons[currentWeapon].power; + monsterHealth -= weapons[currentWeaponIndex].power; --fcc-editable-region-- } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md index a0090afa8b2..5828e9586f7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ed36d7a7915dfa444ba2.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } --fcc-editable-region-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md index b3732065fe5..2dbe0ede570 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8edd05e27cc668051686f.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -222,12 +222,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md index 5e21498b17f..1a8a3901596 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee154c8946678775c4a4.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -232,12 +232,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md index 4b91af3ac04..51c7f098e85 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ee71f018e968a056d369.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -228,12 +228,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -284,9 +284,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md index 13e026e84fe..d19fbfaba8d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eec45f77bc69e8775294.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md index 1efc7b421ff..5cb0374dd12 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eefe2e68b66ac563816b.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -224,12 +224,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -280,9 +280,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md index de723d2ed99..9cb7116ef16 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef6a52292f6bdca4f6f8.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md index 7088608709e..2ceaff37852 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ef8f0c76a46cd221a68c.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md index 70950c641f7..50ef6ebd8b9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8efb0e3ce826db8daf80f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -216,12 +216,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -272,9 +272,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md index 9ca65cea169..0a7e9aee224 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8eff21c0b0f6ebe5b8e38.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md index aaa5c150d18..5871feb5ced 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f06fb318666fef69f91e.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -226,12 +226,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -282,9 +282,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md index 0d2b1a714a1..4c7de94cf93 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f14fe6d1fc72454648c7.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -233,12 +233,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -289,9 +289,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md index 268d09698e8..d7fe88aef9a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f1d5f5ddbf74c07f733b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -223,12 +223,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -279,9 +279,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md index bb1d0ee2ab7..b2807dabfdd 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f20463b324759953edad.md @@ -7,7 +7,7 @@ dashedName: step-138 # --description-- -В кінці коду створіть функцію `restart`. У цій функції встановіть `xp` на `0`, `health` на `100`, `gold` на `50`, `currentWeapon` на `0` та встановіть `inventory` на масив з рядком `stick`. +В кінці коду створіть функцію `restart`. Inside this function, set `xp` to `0`, `health` to `100`, `gold` to `50`, `currentWeaponIndex` to `0`, and set `inventory` to an array with the string `stick`. Також оновіть в `innerText` властивості `goldText`, `healthText` та `xpText` до їхніх поточних значень. @@ -39,10 +39,10 @@ assert.match(restart.toString(), /health\s*=\s*100/); assert.match(restart.toString(), /gold\s*=\s*50/); ``` -Функція `restart` має встановити `currentWeapon` на `0`. +Your `restart` function should set `currentWeaponIndex` to `0`. ```js -assert.match(restart.toString(), /currentWeapon\s*=\s*0/); +assert.match(restart.toString(), /currentWeaponIndex\s*=\s*0/); ``` Функція `restart` має встановити `inventory` на масив з рядком `"stick"`. @@ -164,7 +164,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -275,12 +275,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -331,9 +331,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md index 187fa43498c..38b3fdc5532 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f256b813a476cae51f49.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -312,9 +312,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md index a0286c9b968..e85a24f469f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8f35bde1750791f58773f.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -325,7 +325,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md index 38293472123..0c556e7bd0c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a94114ce0b8918b487390f.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -255,12 +255,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,9 +311,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -351,7 +351,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md index 5098856e130..2c4a1655960 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1cea594f152ba626b872.md @@ -108,7 +108,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -231,12 +231,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -288,9 +288,9 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -329,7 +329,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md index 9c4d3499d13..b2d0c2ccad2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d6736ba262cfa74344b.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,9 +291,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -335,7 +335,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md index 5d70f389971..ef904efb7d5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1d9f535e102e4663e7a6.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,9 +299,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md index 40485308629..6de634c9cff 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e3c7c3d552fb04f0f18.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -285,9 +285,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -331,7 +331,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md index c139ab033db..7e213a75e29 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1e8ccd579330e097ce44.md @@ -121,7 +121,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -244,12 +244,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,9 +300,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -347,7 +347,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md index 8c80d19096d..12ab3d88b2f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1eec891ed731db227a36.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -259,12 +259,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -315,9 +315,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md index 0f557acbbfe..a7122a305f2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa1fed3d4e873366ff3131.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,10 +286,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -334,7 +334,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md index d78cfb2d656..a53b232b157 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa204c1e1d33348ff09944.md @@ -11,10 +11,10 @@ dashedName: step-151 # --hints-- -Ви повинні перемістити `monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1` у свій блок `if`. +You should move your `monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1` into your `if` block. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1/) ``` # --seed-- @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -229,12 +229,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -286,12 +286,12 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { } - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -336,7 +336,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md index 01a1a926b91..18ec9a209a3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa20e9cf1be9358f5aceae.md @@ -14,13 +14,13 @@ Add an `else` statement to the first `if` statement inside your `attack()` funct Ви повинні додати блок `else` після свого блоку `if (isMonsterHit())`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else/) ``` You should add the text `" You miss."` to the end of `text.innerText`. Remember to use compound assignment and make sure there is a space before the word `You`. ```js -assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeapon\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) +assert.match(attack.toString(), /if\s*\(\s*isMonsterHit\(\s*\)\s*\)\s*\{\s*monsterHealth\s*-=\s*weapons\s*\[\s*currentWeaponIndex\s*\]\s*\.power\s*\+\s*Math\.floor\(\s*Math\.random\(\s*\)\s*\*\s*xp\s*\)\s*\+\s*1\s*;?\s*\}\s*else\s*\{\s*text\.innerText\s*\+=\s*('|")\sYou miss\.\1/) ``` # --seed-- @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -292,10 +292,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } healthText.innerText = health; monsterHealthText.innerText = monsterHealth; @@ -341,7 +341,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md index 5a65317b039..4a1f441ae33 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2136fc49b836dfedb959.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -345,7 +345,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md index 3e4dac0fc1a..dc8042dc9df 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21971e3b743844849985.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md index 429e7db4b5f..2056d7583b9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa21ea8d9d9f396b95dd87.md @@ -113,7 +113,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -236,12 +236,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -293,10 +293,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md index f9d6c296438..70e43690e39 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa226207f33d3ad4c6f546.md @@ -131,7 +131,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,10 +311,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -369,7 +369,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md index 74793a15d3e..b6019aa6b39 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa22aba186563bcbf2c395.md @@ -15,7 +15,7 @@ num--; console.log(num); // Output: 9 ``` -Після того, як ви оновите текст, зменште значення `currentWeapon` у своїй інструкції `if`. +Decrement the value of `currentWeaponIndex` in your `if` statement, after you update the text. # --hints-- @@ -25,10 +25,10 @@ console.log(num); // Output: 9 assert.match(attack.toString(), /--/); ``` -Ви повинні зменшити `currentWeapon` у своїй інструкції `if`. +You should decrement `currentWeaponIndex` in your `if` statement. ```js -assert.match(attack.toString(), /(currentWeapon\s*--\s*;?\s*}\s*})$/); +assert.match(attack.toString(), /(currentWeaponIndex\s*--\s*;?\s*}\s*})$/); ``` # --seed-- @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -300,10 +300,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -359,7 +359,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md index 98500ea5548..3178402d32f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa234322d4ad3e8bce42cc.md @@ -128,7 +128,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -251,12 +251,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,10 +308,10 @@ function goFight() { --fcc-editable-region-- function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -328,7 +328,7 @@ function attack() { } if (Math.random() <= .1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } --fcc-editable-region-- @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md index b8ac694a7d5..a1d6a0406e5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2469c77b363fdb4f0e06.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -243,12 +243,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -299,10 +299,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -319,7 +319,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -357,7 +357,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md index 3bca6b55071..5f865393f9d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa252c3b1073415ba2b898.md @@ -112,7 +112,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md index dd1f6dfa5f8..454647890e1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa258da314ef42ba0a1858.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -261,12 +261,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -317,10 +317,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -337,7 +337,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -375,7 +375,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md index 9bef8decc6b..115d596be75 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa25fcb5837d43b4d9873d.md @@ -136,7 +136,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -262,12 +262,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -318,10 +318,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -338,7 +338,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -376,7 +376,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md index dd7bbb512e3..34eb7b4ef91 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2626c3c10244b94c787b.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md index e1624bd1a38..f7899a93157 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa264d23cdaa45a20efada.md @@ -120,7 +120,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -249,12 +249,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -305,10 +305,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -325,7 +325,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -363,7 +363,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md index 45c1e117ccb..a46791e6a50 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa26cca3cd3d46c431e73b.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md index 3f619e5c438..022dfadc3f1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27227399d647e1c37a3c.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md index 2e86d966ec4..899d2eb74fb 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27560def7048d7b4a095.md @@ -106,7 +106,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -235,12 +235,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -291,10 +291,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -311,7 +311,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -349,7 +349,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md index 0a3577df629..0e158c8d226 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa27c40ca6f04ab8be5fac.md @@ -129,7 +129,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -258,12 +258,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -314,10 +314,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -334,7 +334,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -372,7 +372,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md deleted file mode 100644 index 2e1bd0701ea..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28032d863d4bd8058799.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 62aa28032d863d4bd8058799 -title: Step 171 -challengeType: 0 -dashedName: step-171 ---- - -# --description-- - -Цикли `for` оголошуються трьома виразами, які розділені крапкою з комою. `for (a; b; c)`, де `a` – вираз ініціалізації, `b` – умова, `c` – кінцевий вираз. - -Вираз ініціалізації виконується лише раз, перед початком циклу, та часто використовується для визначення та налаштування змінної циклу. Сприймайте це як оголошення лічильника, щоб використати його у своєму циклі. - -Many `for` loops use `i` as the counter and start from `0`, so change `let x = 1;` to `let i = 0;`. - -# --hints-- - -Ви повинні змінити ініціалізацію у циклі `for` на `let i = 0;`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let x = 1; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md deleted file mode 100644 index 56639ed121c..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa287434dc284cea01157c.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa287434dc284cea01157c -title: Step 172 -challengeType: 0 -dashedName: step-172 ---- - -# --description-- - -Друга інструкція у циклі `for`, умовна інструкція, обчислюється на початку кожної ітерації циклу. Цикл продовжується, поки умова істинна. - -We want the loop to run `10` times, so change `x < 5` to `i < 10`. - -# --hints-- - -Ви повинні оновити свою умовну інструкцію на `i < 10`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; x < 5; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md deleted file mode 100644 index 14eee9ce1ec..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28bbd6323e4dfb3ac43e.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: 62aa28bbd6323e4dfb3ac43e -title: Step 173 -challengeType: 0 -dashedName: step-173 ---- - -# --description-- - -Остання інструкція у циклі `for`, кінцевий вираз, виконується вкінці кожної ітерації циклу. - -Оскільки тепер інструкція ініціалізації використовує `i` замість `x`, змініть `x++` на `i++`. Це збільшить ініціалізатор `i` на 1 після кожного циклу. - -# --hints-- - -Ви повинні змінити кінцевий вираз на `i++`. - -```js -assert.match(pick.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*10\s*;\s*i\+\+\s*\)/) -``` - -# --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: #0a0a23; -} - -#text { - background-color: #0a0a23; - color: #ffffff; - padding: 10px; -} - -#game { - max-width: 500px; - max-height: 400px; - background-color: #ffffff; - color: #ffffff; - margin: 30px auto 0px; - padding: 10px; -} - -#controls, -#stats { - border: 1px solid #0a0a23; - padding: 5px; - color: #0a0a23; -} - -#monsterStats { - display: none; - border: 1px solid #0a0a23; - padding: 5px; - color: #ffffff; - background-color: #c70d0d; -} - -.stat { - padding-right: 10px; -} - -button { - cursor: pointer; - color: #0a0a23; - background-color: #feac32; - background-image: linear-gradient(#fecc4c, #ffac33); - border: 3px solid #feac32; -} -``` - -```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 weapons = [ - { name: 'stick', power: 5 }, - { name: 'dagger', power: 30 }, - { name: 'claw hammer', power: 50 }, - { name: 'sword', power: 100 } -]; -const monsters = [ - { - name: "slime", - level: 2, - health: 15 - }, - { - name: "fanged beast", - level: 8, - health: 60 - }, - { - name: "dragon", - level: 20, - health: 300 - } -] -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." - }, - { - name: "cave", - "button text": ["Fight slime", "Fight fanged beast", "Go to town square"], - "button functions": [fightSlime, fightBeast, goTown], - text: "You enter the cave. You see some monsters." - }, - { - name: "fight", - "button text": ["Attack", "Dodge", "Run"], - "button functions": [attack, dodge, goTown], - text: "You are fighting a monster." - }, - { - name: "kill monster", - "button text": ["Go to town square", "Go to town square", "Go to town square"], - "button functions": [goTown, goTown, goTown], - text: 'The monster screams "Arg!" as it dies. You gain experience points and find gold.' - }, - { - name: "lose", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You die. ☠" - }, - { - name: "win", - "button text": ["REPLAY?", "REPLAY?", "REPLAY?"], - "button functions": [restart, restart, restart], - text: "You defeat the dragon! YOU WIN THE GAME! 🎉" - }, - { - name: "easter egg", - "button text": ["2", "8", "Go to town square?"], - "button functions": [pickTwo, pickEight, goTown], - text: "You find a secret game. Pick a number above. Ten numbers will be randomly chosen between 0 and 10. If the number you choose matches one of the random numbers, you win!" - } -]; - -// initialize buttons -button1.onclick = goStore; -button2.onclick = goCave; -button3.onclick = fightDragon; - -function update(location) { - monsterStats.style.display = "none"; - button1.innerText = location["button text"][0]; - button2.innerText = location["button text"][1]; - button3.innerText = location["button text"][2]; - button1.onclick = location["button functions"][0]; - button2.onclick = location["button functions"][1]; - button3.onclick = location["button functions"][2]; - text.innerHTML = location.text; -} - -function goTown() { - update(locations[0]); -} - -function goStore() { - update(locations[1]); -} - -function goCave() { - update(locations[2]); -} - -function buyHealth() { - if (gold >= 10) { - gold -= 10; - health += 10; - goldText.innerText = gold; - healthText.innerText = health; - } else { - text.innerText = "You do not have enough gold to buy health."; - } -} - -function buyWeapon() { - if (currentWeapon < weapons.length - 1) { - if (gold >= 30) { - gold -= 30; - currentWeapon++; - goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; - text.innerText = "You now have a " + newWeapon + "."; - inventory.push(newWeapon); - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "You do not have enough gold to buy a weapon."; - } - } else { - text.innerText = "You already have the most powerful weapon!"; - button2.innerText = "Sell weapon for 15 gold"; - button2.onclick = sellWeapon; - } -} - -function sellWeapon() { - if (inventory.length > 1) { - gold += 15; - goldText.innerText = gold; - let currentWeapon = inventory.shift(); - text.innerText = "You sold a " + currentWeapon + "."; - text.innerText += " In your inventory you have: " + inventory; - } else { - text.innerText = "Don't sell your only weapon!"; - } -} - -function fightSlime() { - fighting = 0; - goFight(); -} - -function fightBeast() { - fighting = 1; - goFight(); -} - -function fightDragon() { - fighting = 2; - goFight(); -} - -function goFight() { - update(locations[3]); - monsterHealth = monsters[fighting].health; - monsterStats.style.display = "block"; - monsterName.innerText = monsters[fighting].name; - monsterHealthText.innerText = monsterHealth; -} - -function attack() { - text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; - health -= getMonsterAttackValue(monsters[fighting].level); - if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; - } else { - text.innerText += " You miss."; - } - healthText.innerText = health; - monsterHealthText.innerText = monsterHealth; - if (health <= 0) { - lose(); - } else if (monsterHealth <= 0) { - if (fighting === 2) { - winGame(); - } else { - defeatMonster(); - } - } - if (Math.random() <= .1 && inventory.length !== 1) { - text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; - } -} - -function getMonsterAttackValue(level) { - const hit = (level * 5) - (Math.floor(Math.random() * xp)); - console.log(hit); - return hit > 0 ? hit : 0; -} - -function isMonsterHit() { - return Math.random() > .2 || health < 20; -} - -function dodge() { - text.innerText = "You dodge the attack from the " + monsters[fighting].name; -} - -function defeatMonster() { - gold += Math.floor(monsters[fighting].level * 6.7); - xp += monsters[fighting].level; - goldText.innerText = gold; - xpText.innerText = xp; - update(locations[4]); -} - -function lose() { - update(locations[5]); -} - -function winGame() { - update(locations[6]); -} - -function restart() { - xp = 0; - health = 100; - gold = 50; - currentWeapon = 0; - inventory = ["stick"]; - goldText.innerText = gold; - healthText.innerText = health; - xpText.innerText = xp; - goTown(); -} - -function easterEgg() { - update(locations[7]); -} - -function pickTwo() { - pick(2); -} - -function pickEight() { - pick(8); -} - ---fcc-editable-region-- -function pick(guess) { - const numbers = []; - while (numbers.length < 10) { - numbers.push(Math.floor(Math.random() * 11)); - } - text.innerText = "You picked " + guess + ". Here are the random numbers:\n"; - for (let i = 0; i < 10; x++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md index edf684ae165..97048783532 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa28fb651bf14efa2dbb16.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md index 86effd1eed5..0b69d5df999 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2943669c9d5026af6985.md @@ -125,7 +125,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,10 +310,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -330,7 +330,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -368,7 +368,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md index 2df9d67832f..c2316e97c64 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2999ec27ec516655eba6.md @@ -118,7 +118,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -247,12 +247,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -303,10 +303,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -323,7 +323,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -361,7 +361,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md index 9ac0ce7e498..4cfbb2364ab 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa29d8f8f88152c91350ca.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -253,12 +253,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -309,10 +309,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -329,7 +329,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -367,7 +367,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md index 51736f0417b..d45244fce75 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2aec2f09d454253aad6c.md @@ -119,7 +119,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -248,12 +248,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -304,10 +304,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -324,7 +324,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -362,7 +362,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md index b30bfbdd9ce..78ea69eb38d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62aa2ba9cd881355a6f0a5a8.md @@ -484,7 +484,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -613,12 +613,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -669,10 +669,10 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= getMonsterAttackValue(monsters[fighting].level); if (isMonsterHit()) { - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; } else { text.innerText += " You miss."; } @@ -689,7 +689,7 @@ function attack() { } if (Math.random() <= .1 && inventory.length !== 1) { text.innerText += " Your " + inventory.pop() + " breaks."; - currentWeapon--; + currentWeaponIndex--; } } @@ -727,7 +727,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md index 60ca220e77d..7049bdc2120 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62b46e3a8d4be31be5af793d.md @@ -71,7 +71,7 @@ assert.equal(script.parentElement.tagName, "BODY"); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md index da474e69a8a..b8dbc085b1e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62ba17beef16c563069a65d8.md @@ -138,7 +138,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -252,12 +252,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -308,9 +308,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -340,7 +340,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md index 3fc9ace0817..2fdfdfd36e3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc1ee0c5a89717d4785729.md @@ -119,7 +119,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md index 26f6633f479..865ee4c919c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc20387ef88d1d1998aac5.md @@ -71,7 +71,7 @@ assert.deepEqual(button3, document.querySelector('#button3')); let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index 83d67fad7a0..f7e60f09ae8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md index 4335e3d1542..d323d78445e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6577ea4f23e3ba1217007bc7.md @@ -140,7 +140,7 @@ body { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md index d8a85f9a06f..f151cf9b149 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/65b2f6acce65b7a69751a090.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -254,12 +254,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; @@ -310,9 +310,9 @@ function goFight() { function attack() { text.innerText = "The " + monsters[fighting].name + " attacks."; - text.innerText += " You attack it with your " + weapons[currentWeapon].name + "."; + text.innerText += " You attack it with your " + weapons[currentWeaponIndex].name + "."; health -= monsters[fighting].level; - monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1; + monsterHealth -= weapons[currentWeaponIndex].power + Math.floor(Math.random() * xp) + 1; healthText.innerText = health; monsterHealthText.innerText = monsterHealth; if (health <= 0) { @@ -346,7 +346,7 @@ function restart() { xp = 0; health = 100; gold = 50; - currentWeapon = 0; + currentWeaponIndex = 0; inventory = ["stick"]; goldText.innerText = gold; healthText.innerText = health; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md index e7783a74d96..01d110abaaf 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/660880e67dfed9eb6adb7178.md @@ -134,7 +134,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md index cf7719f8bdd..8daa6c68d57 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088382bd1422ed8b5309c3.md @@ -132,7 +132,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md index 5e318ebe7e8..017ba23ed68 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/66088621742011f008175e5e.md @@ -127,7 +127,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md index e98b6ce05c6..b53bf78e6c6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b7985f4ba5127cbc401b.md @@ -124,7 +124,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md index 6d215af7f21..5f3868af35e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608b8713915f21398ff32e1.md @@ -140,7 +140,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md index c2e87ebb4ad..d5eb72fa063 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/6608bee87c43ca194effebdf.md @@ -114,7 +114,7 @@ button { let xp = 0; let health = 100; let gold = 50; -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md index 238ba5fb465..69ad986c37d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fbead61552e06d30fc048.md @@ -115,7 +115,7 @@ let health = 100; --fcc-editable-region-- let gold = 50; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -200,12 +200,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length) { + if (currentWeaponIndex < weapons.length) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md index 124c16a7e0b..980d04ab6b9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/662fc372da60030ae25b194e.md @@ -110,7 +110,7 @@ let health = 100; --fcc-editable-region-- let gold = 250; --fcc-editable-region-- -let currentWeapon = 0; +let currentWeaponIndex = 0; let fighting; let monsterHealth; let inventory = ["stick"]; @@ -195,12 +195,12 @@ function buyHealth() { } function buyWeapon() { - if (currentWeapon < weapons.length - 1) { + if (currentWeaponIndex < weapons.length - 1) { if (gold >= 30) { gold -= 30; - currentWeapon++; + currentWeaponIndex++; goldText.innerText = gold; - let newWeapon = weapons[currentWeapon].name; + let newWeapon = weapons[currentWeaponIndex].name; text.innerText = "You now have a " + newWeapon + "."; inventory.push(newWeapon); text.innerText += " In your inventory you have: " + inventory; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md index a06da265229..9cc3861fd0a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655dc43318591b975cdfe2d8.md @@ -55,7 +55,7 @@ Your `allSongs` array should have an object with a `duration` property set to th assert.equal(allSongs[0].duration, "4:25"); ``` -Your `allSongs` array should have an object with an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. +Your `allSongs` array should have an object with a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"`. ```js assert.equal(allSongs[0].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/scratching-the-surface.mp3"); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md index 65888cb1613..f6ed7a72f54 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606d06666e118ba86162be.md @@ -55,7 +55,7 @@ The second object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[1].duration, "4:15"); ``` -The second object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The second object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[1].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md index 64668630c7c..605c0846234 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65606ed6ea2baca053327e9b.md @@ -49,7 +49,7 @@ The third object in your `allSongs` array should have a `duration` property set assert.equal(allSongs[2].duration, "3:51"); ``` -The third object in your `allSongs` array should have an `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. +The third object in your `allSongs` array should have a `src` property set to the string `"https://cdn.freecodecamp.org/curriculum/js-music-player/can't-stay-down.mp3"`. ```js assert.equal(allSongs[2].src, "https://cdn.freecodecamp.org/curriculum/js-music-player/still-learning.mp3"); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md index 87e5a4989d8..395545be41e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b6152e6aff882db819fc1e.md @@ -15,13 +15,9 @@ Start by declaring a `cleanInputString` function that takes a `str` parameter. # --hints-- -Оголосіть змінну `cleanInputString`. -```js -assert.isDefined(cleanInputString); -``` -Змінна `cleanInputString` повинна бути функцією. +You should declare a `cleanInputString` function. ```js assert.isFunction(cleanInputString); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md deleted file mode 100644 index c1137133fc0..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63b61584def8fa2ebcc259e0.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: 63b61584def8fa2ebcc259e0 -title: Крок 19 -challengeType: 0 -dashedName: step-19 ---- - -# --description-- - -You need to split your `str` into individual characters. You can use the split() method to do this. - -The `split()` method splits a string into an array of substrings, and returns the new array. You can pass in an optional separator which tells the method where each split should happen. - -For example, passing an empty string into the `split` method will split the string into an array of individual characters. - -```js -const str = 'Hello World'; -const strArray = str.split(''); -// ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"] -``` - -Split the string passed into the `cleanInputString` function into an array of individual characters and assign it to a variable named `strArray`. - -# --hints-- - -Функція `cleanInputString` повинна оголосити змінну `strArray`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=/); -``` - -Your `strArray` variable should be assigned the value of `str.split('')`. - -```js -assert.match(cleanInputString.toString(), /strArray\s*=\s*str\.split\(\s*('|")\1\s*\)/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md deleted file mode 100644 index 6afc1bf0172..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf43be3f969d24d4ed233c.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -id: 63bf43be3f969d24d4ed233c -title: Крок 20 -challengeType: 0 -dashedName: step-20 ---- - -# --description-- - -Declare a `cleanStrArray` variable and assign it an empty array. You will use this to store your valid number characters. - -# --hints-- - -Your `cleanInputString` should declare a variable called `cleanStrArray`. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*/g); -``` - -Your `cleanStrArray` variable should be assigned an empty array. - -```js -assert.match(cleanInputString.toString(), /cleanStrArray\s*=\s*\[\s*\]/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md deleted file mode 100644 index ade82db60af..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf446945d34d25e6db6e4f.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -id: 63bf446945d34d25e6db6e4f -title: Крок 21 -challengeType: 0 -dashedName: step-21 ---- - -# --description-- - -Use a `for` loop to iterate through each character in your `strArray` array. - -# --hints-- - -Your `cleanInputString` function should have a `for` loop. - -```js -assert.match(cleanInputString.toString(), /for\s*\(/g); -``` - -Цикл `for` має ініціалізувати змінну під назвою `i` значенням `0`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;/g); -``` - -Your `for` loop should have a condition that checks if `i` is less than the length of `strArray`. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;/g); -``` - -Your `for` loop should increment `i` by `1` each time it runs. Use the increment operator for this. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)/g); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md deleted file mode 100644 index cd174c3a95c..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf45ce0dc8d4270760c6d0.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -id: 63bf45ce0dc8d4270760c6d0 -title: Крок 22 -challengeType: 0 -dashedName: step-22 ---- - -# --description-- - -You will need to check if the array `["+", "-", " "]` does not include the current character. You can use a combination of the includes() method and the ! operator to do this. - -The `.includes()` method returns `true` if the array contains the character, and `false` if not. The logical NOT operator (`!`) will return the opposite of the value of the `.includes()` method. - -Here is an example checking if the current character is not in the vowels array. If it is not, that current character is pushed into the `consonantArray`: - -```js -const inputString = "Hello World"; -const charArray = inputString.split(''); -const consonantArray = []; - -for (let i = 0; i < charArray.length; i++) { - if (!['a', 'e', 'i', 'o', 'u'].includes(charArray[i])) { - consonantArray.push(charArray[i]); - } -} -``` - -Within your loop, you need to check if the character in `strArray` at index `i` is not a `"+"`, `"-"`, or a space (`" "`). If it is not, `push` it to the `cleanStrArray`. - -# --hints-- - -Your `for` loop should have an `if` statement. - -```js -assert.match(cleanInputString.toString(), /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(/); -``` - -Your `for` loop should use `!["+", "-", " "].includes()`. - -```js -// the loop protection injects code so we have to look at the raw code directly -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(/); -``` - -Your `for` loop should see if `!["+", "-", " "].includes(strArray[i])`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?/); -``` - -Your `for` loop should `push` `strArray[i]` to `cleanStrArray`. - -```js -assert.match(code, /for\s*\(\s*(let|var)\s+i\s*=\s*0\s*;\s*i\s*<\s*strArray\.length\s*;\s*i\s*\+\+\s*\)\s*\{\s*if\s*\(\s*!\s*\[\s*("|')\+\2\s*,\s*("|')-\3\s*,\s*("|')\s\4\s*\]\s*\.includes\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*\)(\s*\{)?\s*cleanStrArray\.push\(\s*strArray\s*\[\s*i\s*\]\s*\)\s*;?\s*(\s*\})?/); -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - Calorie Counter - - -
-

Calorie Counter

-
-
- - -
- Breakfast -
-
-
- Lunch -
-
-
- Dinner -
-
-
- Snacks -
-
-
- Exercise -
-
-
- - - - - -
-
- - -
-
-
-
-
- - - -``` - -```css -:root { - --light-grey: #f5f6f7; - --dark-blue: #0a0a23; - --fcc-blue: #1b1b32; - --light-yellow: #fecc4c; - --dark-yellow: #feac32; - --light-pink: #ffadad; - --dark-red: #850000; - --light-green: #acd157; -} - -body { - font-family: "Lato", Helvetica, Arial, sans-serif; - font-size: 18px; - background-color: var(--fcc-blue); - color: var(--light-grey); -} - -h1 { - text-align: center; -} - -.container { - width: 90%; - max-width: 680px; -} - -h1, -.container, -.output { - margin: 20px auto; -} - -label, -legend { - font-weight: bold; -} - -.input-container { - display: flex; - flex-direction: column; -} - -button { - cursor: pointer; - text-decoration: none; - background-color: var(--light-yellow); - border: 2px solid var(--dark-yellow); -} - -button, -input, -select { - min-height: 24px; - color: var(--dark-blue); -} - -fieldset, -label, -button, -input, -select { - margin-bottom: 10px; -} - -.output { - border: 2px solid var(--light-grey); - padding: 10px; - text-align: center; -} - -.hide { - display: none; -} - -.output span { - font-weight: bold; - font-size: 1.2em; -} - -.surplus { - color: var(--light-pink); -} - -.deficit { - color: var(--light-green); -} -``` - -```js -const calorieCounter = document.getElementById('calorie-counter'); -const budgetNumberInput = document.getElementById('budget'); -const entryDropdown = document.getElementById('entry-dropdown'); -const addEntryButton = document.getElementById('add-entry'); -const clearButton = document.getElementById('clear'); -const output = document.getElementById('output'); -let isError = false; - ---fcc-editable-region-- -function cleanInputString(str) { - const strArray = str.split(''); - const cleanStrArray = []; - - for (let i = 0; i < strArray.length; i++) { - - } -} ---fcc-editable-region-- -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md index 859520bc7f1..2cab3370840 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5230bccd1c2f5c13e1ce.md @@ -13,12 +13,6 @@ Start by creating a function called `isInvalidInput` – it should take a single # --hints-- -Оголосіть змінну `isInvalidInput`. - -```js -assert.isDefined(isInvalidInput) -``` - `isInvalidInput` має бути функцією. ```js diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md index 63056650c20..9a7c21d3716 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63bf5cf03b50bf36cfbe94ea.md @@ -11,13 +11,7 @@ Your next step is to allow users to add entries to the calorie counter. Declare # --hints-- -Оголосіть змінну `addEntry`. - -```js -assert.isDefined(addEntry); -``` - -Змінна `addEntry` повинна бути функцією. +You should declare an `addEntry` function. ```js assert.isFunction(addEntry); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index d90798583b0..ac72cff5f7a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -19,7 +19,7 @@ let hello; Variable naming follows specific rules: names can include letters, numbers, dollar signs, and underscores, but cannot contain spaces and must not begin with a number. -Declare a `character` variable in your code. +Use the `let` keyword to declare a variable called `character`. _Note_: It is common practice to end statements in JavaScript with a semicolon. `;` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 1b4e6d3019d..8387a8e2906 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,15 +1,15 @@ --- id: 660f44f10ea40f300b896a5e -title: Step 75 +title: Step 77 challengeType: 1 -dashedName: step-75 +dashedName: step-77 --- # --description-- -The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. +Now that you have practiced working with `if...else if...else` statements, you can remove them from your code. -For now, remove your `if` statement entirely. Use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. +Once you complete that, use `let` to declare a `continueLoop` variable and assign it the boolean `false`. Then use `let` to declare a `done` variable and assign it the value `0`. # --hints-- @@ -19,6 +19,18 @@ You should not have an `if` statement. assert.notMatch(code, /if\s*\(/); ``` +You should not have an `else if` statement. + +```js +assert.notMatch(code, /else\s+if\s*\(/); +``` + +You should not have an `else` statement. + +```js +assert.notMatch(code, /else\s*\{/); +``` + You should use `let` to declare a `continueLoop` variable. ```js @@ -40,7 +52,7 @@ assert.match(code, /let\s+done/); Your `done` variable should have the value `0`. ```js -assert.equal(done, 0); +assert.strictEqual(done, 0); ``` # --seed-- @@ -64,6 +76,10 @@ function padRow(rowNumber, rowCount) { --fcc-editable-region-- if ("") { console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} else { + console.log("This is the else block"); } --fcc-editable-region-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index c34cb0b76ad..0481d908df8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,8 +1,8 @@ --- id: 660f455b044d3230ed971e98 -title: Step 76 +title: Step 78 challengeType: 1 -dashedName: step-76 +dashedName: step-78 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 68d1de4f932..7213f8df285 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,8 +1,8 @@ --- id: 660f45ccf4ca5c31f253005a -title: Step 77 +title: Step 79 challengeType: 1 -dashedName: step-77 +dashedName: step-79 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 5e8e40d6b16..9dcb58bfca5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,8 +1,8 @@ --- id: 660f46460f9c36330ebc07d8 -title: Step 79 +title: Step 81 challengeType: 1 -dashedName: step-79 +dashedName: step-81 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 7394ed4736d..bb101fc20c5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,8 +1,8 @@ --- id: 660f46b9c417a8341729a3ab -title: Step 80 +title: Step 82 challengeType: 1 -dashedName: step-80 +dashedName: step-82 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index 5f212983dbc..96fde394ec1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,8 +1,8 @@ --- id: 660f4774e3e0df35a68bb5f2 -title: Step 81 +title: Step 83 challengeType: 1 -dashedName: step-81 +dashedName: step-83 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index 3f935935d65..b58e85a4862 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,8 +1,8 @@ --- id: 660f47afe4c98536715d5fa4 -title: Step 82 +title: Step 84 challengeType: 1 -dashedName: step-82 +dashedName: step-84 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 38f1716a030..f3d44d966ef 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,8 +1,8 @@ --- id: 660f487dc0c8fa38084f9754 -title: Step 83 +title: Step 85 challengeType: 1 -dashedName: step-83 +dashedName: step-85 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 65be0857191..4854ef247ec 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,8 +1,8 @@ --- id: 660f48a419b40238e2b8b4d5 -title: Step 84 +title: Step 86 challengeType: 1 -dashedName: step-84 +dashedName: step-86 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 56cc168fa5b..ddc16c7701f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,8 +1,8 @@ --- id: 660f48e1d3682f39e81843c4 -title: Step 85 +title: Step 87 challengeType: 1 -dashedName: step-85 +dashedName: step-87 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 32fc3125716..9def038e492 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,8 +1,8 @@ --- id: 660f4934fb48f63abd5ae371 -title: Step 86 +title: Step 88 challengeType: 1 -dashedName: step-86 +dashedName: step-88 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 92db1ece642..0a430ea15fe 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,8 +1,8 @@ --- id: 660f4990b1caa03b9dc97a43 -title: Step 88 +title: Step 90 challengeType: 1 -dashedName: step-88 +dashedName: step-90 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 669ac645c24..be47bd35d97 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,8 +1,8 @@ --- id: 660f49e32001983c90b75850 -title: Step 89 +title: Step 91 challengeType: 1 -dashedName: step-89 +dashedName: step-91 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 96241903ba4..a1933382980 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,8 +1,8 @@ --- id: 660f4a1472f8e63d76162ce5 -title: Step 90 +title: Step 92 challengeType: 1 -dashedName: step-90 +dashedName: step-92 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index a1cee5e6c84..0807e62a585 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,8 +1,8 @@ --- id: 660f4a83373de83ea101685f -title: Step 91 +title: Step 93 challengeType: 1 -dashedName: step-91 +dashedName: step-93 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 838f9438250..40eefc22528 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,8 +1,8 @@ --- id: 660f4ae5b3924c3fc3373973 -title: Step 92 +title: Step 94 challengeType: 1 -dashedName: step-92 +dashedName: step-94 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index 971fad8f432..f9b12a4712c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,8 +1,8 @@ --- id: 660f4b33e2a3364094ecb540 -title: Step 93 +title: Step 95 challengeType: 1 -dashedName: step-93 +dashedName: step-95 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index a855f00b19b..46168811da1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,8 +1,8 @@ --- id: 660f4b641290da41b2cf0dd9 -title: Step 94 +title: Step 96 challengeType: 1 -dashedName: step-94 +dashedName: step-96 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index d81ee0b2e14..038dde681ac 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,8 +1,8 @@ --- id: 660f4c3b01c44743719c99e4 -title: Step 95 +title: Step 97 challengeType: 1 -dashedName: step-95 +dashedName: step-97 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 925d2b77fcb..cb641b11f92 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,8 +1,8 @@ --- id: 660f4cde8dd305450514a1cb -title: Step 96 +title: Step 98 challengeType: 1 -dashedName: step-96 +dashedName: step-98 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 3abd54364d2..60b19082484 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,8 +1,8 @@ --- id: 660f4cffb1459d45e34902d1 -title: Step 97 +title: Step 99 challengeType: 1 -dashedName: step-97 +dashedName: step-99 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index ff9b0ee3386..99e93e4ebf8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,8 +1,8 @@ --- id: 660f4de78f775e480ba2e451 -title: Step 98 +title: Step 100 challengeType: 1 -dashedName: step-98 +dashedName: step-100 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 0dd3cc14b1e..87ec1117f3f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,8 +1,8 @@ --- id: 660f4e74f7fd3f4a99ac2e50 -title: Step 99 +title: Step 101 challengeType: 1 -dashedName: step-99 +dashedName: step-101 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 1a3104c8c5f..0dc423248cc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,8 +1,8 @@ --- id: 660f4efcb8068e4cb470dca1 -title: Step 100 +title: Step 102 challengeType: 1 -dashedName: step-100 +dashedName: step-102 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index b676558ec74..ab733a631f3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,8 @@ --- id: 660f4f79e2a82a4e92290f44 -title: Step 101 +title: Step 103 challengeType: 1 -dashedName: step-101 +dashedName: step-103 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index e81f3a46070..90d2fd9e3a2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,8 +1,8 @@ --- id: 660f505d02b2bd513a1c3468 -title: Step 102 +title: Step 104 challengeType: 1 -dashedName: step-102 +dashedName: step-104 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index 13762b74add..0ae047f23e2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,8 +1,8 @@ --- id: 660f50a21fe7645252804f2b -title: Step 103 +title: Step 105 challengeType: 1 -dashedName: step-103 +dashedName: step-105 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index d33878f034a..82c8f15ced4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,8 +1,8 @@ --- id: 660f5179b3b0ca558f6b4d4f -title: Step 104 +title: Step 106 challengeType: 1 -dashedName: step-104 +dashedName: step-106 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index d7d41efdd0b..cb8a7fb6b1f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,8 +1,8 @@ --- id: 660f51f1df0a8757934a5796 -title: Step 105 +title: Step 107 challengeType: 1 -dashedName: step-105 +dashedName: step-107 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index bdca358ba56..e33144fcb77 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,21 +1,21 @@ --- id: 660f530d6e33d159e1bf4947 -title: Step 106 +title: Step 108 challengeType: 1 -dashedName: step-106 +dashedName: step-108 --- # --description-- -Sometimes you will want to run different code when an `if` condition is false. You can do this by adding an `else` block. An `else` block will only evaluate if the `if` block does not evaluate. +If your pyramid is not inverted, then you will want to have an `else` block that builds the pyramid in the normal order. -The syntax to add an `else` block is: +In earlier steps, you learned how to work with `else` statement like this: ```js if (condition) { - logic + // if condition is true, run this code } else { - logic + // if condition is false, run this code } ``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index d9ca3b954fc..953b19c573c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,8 +1,8 @@ --- id: 660f535ec33a285b33af3774 -title: Step 107 +title: Step 109 challengeType: 1 -dashedName: step-107 +dashedName: step-109 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 3f088de2c91..bc2bfe3f7e4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,8 @@ --- id: 660f53ad3d39175c5d4335ac -title: Step 108 +title: Step 110 challengeType: 1 -dashedName: step-108 +dashedName: step-110 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 62d26b90248..78e49d56783 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,8 +1,8 @@ --- id: 660f540c2176ea5dec01306d -title: Step 109 +title: Step 111 challengeType: 1 -dashedName: step-109 +dashedName: step-111 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index b76be7bd139..a9f9aa4f084 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,8 +1,8 @@ --- id: 6610bf6fa14d700beed1b109 -title: Step 78 +title: Step 80 challengeType: 1 -dashedName: step-78 +dashedName: step-80 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 9b495fe2cbd..8e75896176c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,8 +1,8 @@ --- id: 661483051820c3c1ab4595e0 -title: Step 87 +title: Step 89 challengeType: 1 -dashedName: step-87 +dashedName: step-89 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md new file mode 100644 index 00000000000..93320837642 --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/66458f0a05df478aa627629e.md @@ -0,0 +1,84 @@ +--- +id: 66458f0a05df478aa627629e +title: Step 75 +challengeType: 1 +dashedName: step-75 +--- + +# --description-- + +The text is gone again! Empty strings evaluate to `false`, making them a falsy value. You will learn more about truthy and falsy values in future projects. + +In addition to `if` statements, JavaScript also has else if statements. `else if` statements allow you to check multiple conditions in a single block of code. + +Here is the syntax for an `else if` statement: + +```js +if (condition1) { + // code to run if condition1 is true +} else if (condition2) { + // code to run if condition2 is true +} else if (condition3) { + // code to run if condition3 is true +} +``` + +If the first condition is `false`, JavaScript will check the next condition in the chain. If the second condition is `false`, JavaScript will check the third condition, and so on. + +Below your `if` statement, add an `else if` statement that checks if `5` is less than `10`. Then inside the body of the `else if` statement, log the string `"5 is less than 10"` to the console. + +Check the console to see the results. + +# --hints-- + +You should have an `else if` statement. + +```js +assert.match(code, /else\s+if\s*\(/); +``` + +Your `else if` statement should check if `5` is less than `10`. + +```js +assert.match(code, /else\s+if\s*\(\s*5\s*<\s*10\s*\)/); +``` + +You should log the string `"5 is less than 10"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)5\s+is\s+less\s+than\s+10\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md new file mode 100644 index 00000000000..a481de10d82 --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/664599653fcd6e97104f9261.md @@ -0,0 +1,80 @@ +--- +id: 664599653fcd6e97104f9261 +title: Step 76 +challengeType: 1 +dashedName: step-76 +--- + +# --description-- + +Sometimes you will want to run different code when all of the `if...else if` conditions are `false`. You can do this by adding an `else` block. + +An `else` block will only evaluate if the conditions in the `if` and `else if` blocks are not met. + +Here the `else` block is added to the `else if` block. + +```js + +if (condition) { + // this code will run if condition is true +} else if (condition2) { + // this code will run if the first condition is false +} else { + // this code will run + // if the first and second conditions are false +} +``` + +Add an `else` block to the `else if` block. Inside the `else` block, log the string `"This is the else block"` to the console. + +To see the results in the console, you can manually change the `<` in the `else if` statement to `>`. That will make the condition `false` and the `else` block will run. + +# --hints-- + +You should have an `else` block. + +```js +assert.match(code, /else\s*\{/); +``` + +Your `else` block should log the string `"This is the else block"` to the console. + +```js +assert.match(code, /console\.log\(\s*('|"|`)This\s+is\s+the\s+else\s+block\1\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```js +const character = "#"; +const count = 8; +const rows = []; + +function padRow(rowNumber, rowCount) { + return " ".repeat(rowCount - rowNumber) + character.repeat(2 * rowNumber - 1) + " ".repeat(rowCount - rowNumber); +} + +// TODO: use a different type of loop +/*for (let i = 1; i <= count; i++) { + rows.push(padRow(i, count)); +}*/ + +--fcc-editable-region-- +if ("") { + console.log("Condition is true"); +} else if (5 < 10) { + console.log("5 is less than 10"); +} +--fcc-editable-region-- + +let result = "" + +for (const row of rows) { + result = result + "\n" + row; +} + +console.log(result); +``` + diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md deleted file mode 100644 index e423f0a2d4d..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64e4f01d6c72086e016a8626.md +++ /dev/null @@ -1,340 +0,0 @@ ---- -id: 64e4f01d6c72086e016a8626 -title: Крок 12 -challengeType: 0 -dashedName: step-12 ---- - -# --description-- - -Next, retrieve the values from the input fields and store them in a `taskObj` object. Each task should also have a unique `id`. - -Create a `taskObj` object with an `id` property as the first property. For the value of the `id` property, retrieve the value of the `titleInput` field, convert it to lowercase, and then use the `split()` and `join()` methods to hyphenate it. - -Make sure that the value of the `id` property is enclosed within template literals, as you will be appending more to the string later on. - -# --hints-- - -You should use `const` to create a `taskObj` object. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*/) -``` - -Your `taskObj` object should have a key of `id`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id/) -``` - -You should use template strings to get `titleInput.value` as the value of your `id` key and convert it to lowercase. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)/) -``` - -You should use `.split(' ')` on `titleInput.value.toLowerCase()`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)/) -``` - -You should use `.join('-')` on `titleInput.value.toLowerCase().split(' ')`. - -```js -assert.match(code, /const\s+taskObj\s*=\s*\{\s*id:\s*`\$\{titleInput\.value\.toLowerCase\(\s*\)\.split\(\s*('|")\s{1}\1\s*\)\.join\(\s*('|")-\2\s*\)\}`\s*,?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - confirmCloseDialog.showModal(); -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - taskForm.classList.toggle("hidden"); -}); - - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - --fcc-editable-region-- - - --fcc-editable-region-- -}); -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md deleted file mode 100644 index 95f91829c1e..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/659ebe52d74b132a1d75c891.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: 659ebe52d74b132a1d75c891 -title: Step 52 -challengeType: 0 -dashedName: step-52 ---- - -# --description-- - -If you try to add a new task, edit that task, and then click on the `Add New Task` button, you will notice a bug. - -The form button will display the incorrect text of `"Update Task"` instead of `"Add Task"`. To fix this, you will need to assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText` inside your `addOrUpdateTask` function. -# --hints-- - -You should assign the string `"Add Task"` to `addOrUpdateTaskBtn.innerText`. - -```js -assert.match(code, /addOrUpdateTaskBtn\.innerText\s*=\s*('|")Add Task\1\s*/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const addOrUpdateTask = () => { - --fcc-editable-region-- - - --fcc-editable-region-- - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } else { - taskData[dataArrIndex] = taskObj; - } - - updateTaskContainer() - reset() -}; - -const updateTaskContainer = () => { - tasksContainer.innerHTML = ""; - - taskData.forEach( - ({ id, title, date, description }) => { - (tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- `) - } - ); -}; - - -const deleteTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - buttonEl.parentElement.remove(); - taskData.splice(dataArrIndex, 1); -} - -const editTask = (buttonEl) => { - const dataArrIndex = taskData.findIndex( - (item) => item.id === buttonEl.parentElement.id - ); - - currentTask = taskData[dataArrIndex]; - - titleInput.value = currentTask.title; - dateInput.value = currentTask.date; - descriptionInput.value = currentTask.description; - - addOrUpdateTaskBtn.innerText = "Update Task"; - - taskForm.classList.toggle("hidden"); -} - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; - if (formInputsContainValues) { - confirmCloseDialog.showModal(); - } else { - reset(); - } -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - addOrUpdateTask(); -}); -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md deleted file mode 100644 index b38c13acbaf..00000000000 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-modern-javascript-methods-by-building-football-team-cards/63d12fe2a595263e8f5084f7.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: 63d12fe2a595263e8f5084f7 -title: Крок 15 -challengeType: 0 -dashedName: step-15 ---- - -# --description-- - -To check if the `Object.freeze()` method is working, you can try to assign a new value to one of the existing properties. - -Below the `Object.freeze(myFavoriteFootballTeam)`, assign the `USA` string to `myFavoriteFootballTeam.team`. Below that, add a `console.log` for `myFavoriteFootballTeam.team`. - -When you open up the console, you will see an `Uncaught TypeError` message. This error appears because the `Object.freeze()` method does not allow you to overwrite that value. - -# --hints-- - -You should assign the `USA` string to `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /myFavoriteFootballTeam\.team\s*=\s*('|"|`)USA\1\s*/); - -``` - -You should add a `console.log` for `myFavoriteFootballTeam.team`. - -```js - -assert.match(code, /console\.log\(\s*myFavoriteFootballTeam\.team\s*\)/); - -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn Modern JavaScript methods by building football team cards - - - - -

Team stats

-
-
-

Team:

-

Sport:

-

Year:

-

Head coach:

-
- - -
-
-

Sergio Almirón

-

Position: forward

-

Number: 1

-

Nickname: N/A

-
-
-

Sergio Batista

-

Position: midfielder

-

Number: 2

-

Nickname: N/A

-
-
-

Ricardo Bochini

-

Position: midfielder

-

Number: 3

-

Nickname: El Bocha

-
-
-

Claudio Borghi

-

Position: midfielder

-

Number: 4

-

Nickname: Bichi

-
-
-

José Luis Brown

-

Position: defender

-

Number: 5

-

Nickname: Tata

-
-
-

Daniel Passarella

-

Position: defender

-

Number: 6

-

Nickname: El Gran Capitán

-
-
-

Jorge Burruchaga

-

Position: forward

-

Number: 7

-

Nickname: Burru

-
-
-

Néstor Clausen

-

Position: defender

-

Number: 8

-

Nickname: N/A

-
-
-

José Luis Cuciuffo

-

Position: defender

-

Number: 9

-

Nickname: El Cuchu

-
-
-

(Captain) Diego Maradona

-

Position: midfielder

-

Number: 10

-

Nickname: El Pibe de Oro

-
-
-

Jorge Valdano

-

Position: forward

-

Number: 11

-

Nickname: The Philosopher of Football

-
-
-

Héctor Enrique

-

Position: midfielder

-

Number: 12

-

Nickname: N/A

-
-
-

Oscar Garré

-

Position: defender

-

Number: 13

-

Nickname: N/A

-
-
-

Ricardo Giusti

-

Position: midfielder

-

Number: 14

-

Nickname: N/A

-
-
-

Luis Islas

-

Position: goalkeeper

-

Number: 15

-

Nickname: El loco

-
-
-

Julio Olarticoechea

-

Position: defender

-

Number: 16

-

Nickname: N/A

-
-
-

Pedro Pasculli

-

Position: forward

-

Number: 17

-

Nickname: N/A

-
-
-

Nery Pumpido

-

Position: goalkeeper

-

Number: 18

-

Nickname: N/A

-
-
-

Oscar Ruggeri

-

Position: defender

-

Number: 19

-

Nickname: El Cabezón

-
-
-

Carlos Tapia

-

Position: midfielder

-

Number: 20

-

Nickname: N/A

-
-
-

Marcelo Trobbiani

-

Position: midfielder

-

Number: 21

-

Nickname: Calesita

-
-
-

Héctor Zelada

-

Position: goalkeeper

-

Number: 22

-

Nickname: N/A

-
-
-
-
© freeCodeCamp
- - - - -``` - -```css -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -:root { - --dark-grey: #0a0a23; - --light-grey: #f5f6f7; - --white: #ffffff; - --black: #000; -} - -body { - background-color: var(--dark-grey); - text-align: center; - padding: 10px; -} - -.title, -.options-label, -.team-stats, -footer { - color: var(--white); -} - -.title { - margin: 1.3rem 0; -} - -.team-stats { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - font-size: 1.3rem; - margin: 1.2rem 0; -} - -.options-label { - font-size: 1.2rem; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: center; -} - -.player-card { - background-color: var(--light-grey); - padding: 1.3rem; - margin: 1.2rem; - width: 300px; - border-radius: 15px; -} - -@media (max-width: 768px) { - .team-stats { - flex-direction: column; - } -} - -``` - -```js -const teamName = document.getElementById("team"); -const typeOfSport = document.getElementById("sport"); -const worldCupYear = document.getElementById("year"); -const headCoach = document.getElementById("head-coach"); -const playerCards = document.getElementById("player-cards"); -const playersDropdownList = document.getElementById("players"); -const myFavoriteFootballTeam = { - team: "Argentina", - sport: "Football", - year: 1986, - isWorldCupWinner: true, - headCoach: { - coachName: "Carlos Bilardo", - matches: 7, - }, - players: [ - { - name: "Sergio Almirón", - position: "forward", - number: 1, - isCaptain: false, - nickname: null, - }, - { - name: "Sergio Batista", - position: "midfielder", - number: 2, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Bochini", - position: "midfielder", - number: 3, - isCaptain: false, - nickname: "El Bocha", - }, - { - name: "Claudio Borghi", - position: "midfielder", - number: 4, - isCaptain: false, - nickname: "Bichi", - }, - { - name: "José Luis Brown", - position: "defender", - number: 5, - isCaptain: false, - nickname: "Tata", - }, - { - name: "Daniel Passarella", - position: "defender", - number: 6, - isCaptain: false, - nickname: "El Gran Capitán", - }, - { - name: "Jorge Burruchaga", - position: "forward", - number: 7, - isCaptain: false, - nickname: "Burru", - }, - { - name: "Néstor Clausen", - position: "defender", - number: 8, - isCaptain: false, - nickname: null, - }, - { - name: "José Luis Cuciuffo", - position: "defender", - number: 9, - isCaptain: false, - nickname: "El Cuchu", - }, - { - name: "Diego Maradona", - position: "midfielder", - number: 10, - isCaptain: true, - nickname: "El Pibe de Oro", - }, - { - name: "Jorge Valdano", - position: "forward", - number: 11, - isCaptain: false, - nickname: "The Philosopher of Football", - }, - { - name: "Héctor Enrique", - position: "midfielder", - number: 12, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Garré", - position: "defender", - number: 13, - isCaptain: false, - nickname: null, - }, - { - name: "Ricardo Giusti", - position: "midfielder", - number: 14, - isCaptain: false, - nickname: null, - }, - { - name: "Luis Islas", - position: "goalkeeper", - number: 15, - isCaptain: false, - nickname: "El loco", - }, - { - name: "Julio Olarticoechea", - position: "defender", - number: 16, - isCaptain: false, - nickname: null, - }, - { - name: "Pedro Pasculli", - position: "forward", - number: 17, - isCaptain: false, - nickname: null, - }, - { - name: "Nery Pumpido", - position: "goalkeeper", - number: 18, - isCaptain: false, - nickname: null, - }, - { - name: "Oscar Ruggeri", - position: "defender", - number: 19, - isCaptain: false, - nickname: "El Cabezón", - }, - { - name: "Carlos Tapia", - position: "midfielder", - number: 20, - isCaptain: false, - nickname: null, - }, - { - name: "Marcelo Trobbiani", - position: "midfielder", - number: 21, - isCaptain: false, - nickname: "Calesita", - }, - { - name: "Héctor Zelada", - position: "goalkeeper", - number: 22, - isCaptain: false, - nickname: null, - }, - ], -}; - -Object.freeze(myFavoriteFootballTeam); - ---fcc-editable-region-- - ---fcc-editable-region-- - -``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md index 2c527fb37f4..41ff2039db5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/63db7f4677d06d7500a13321.md @@ -13,6 +13,9 @@ All of the HTML and CSS for this project has been provided for you. When you're ready to get started, use the `.getElementById()` method to get the input element with the id `number-input`, and store it in a variable called `numberInput`. Use the same method to get the button element with the id `convert-btn` and store it in a variable called `convertBtn`, and the `h2` element with the id `result` and store it in a variable called `result`. + +**NOTE**: This project will only convert positive numbers into binary. + # --hints-- You should use the `document.getElementById()` method to get the `#number-input` element. diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md index b4d458759c8..1463bb11a0a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64007367d54d2a7efbf44fcf.md @@ -19,12 +19,21 @@ isNaN("3.5"); // false Update the second condition in your `if` statement to use the `isNaN()` function to check if the value returned by `parseInt()` is `NaN`. -# --hints-- - -You should wrap the value returned by `parseInt()` in the `isNaN()` function. +Also,as we mentioned in step 1 that we are considering only positive numbers, we should add a third condition in `if` statement to check whether the number is less than 0 (i.e negative numbers) ```js -assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\)\s*\{/); + 6 < 0; // false +-1 < 0; // true +-8 < 0; // true + 0 < 0; //false +``` + +# --hints-- + +You should wrap the value returned by `parseInt()` in the `isNaN()` function. And add a third condition which checks the value returned by `parseInt()` to be less than 0. + +```js +assert.match(String(checkUserInput), /if\s*\(\s*!\s*numberInput\s*\.\s*value\s*\|\|\s*isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0\s*\)\s*\{/); ``` The body of your `if` statement within `checkUserInput` should be empty. diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 385104c367b..9cffb843810 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -9,7 +9,7 @@ dashedName: step-13 Now you can alert the user if they don't enter a number, or the number is invalid before you attempt to convert it into binary. -In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number`. +In the body of the `if` statement, use the `alert()` method to display the text `Please provide a decimal number greater than or equal to 0`. Note that `alert()` is a method on the `window` object in the browser, so you can use either `window.alert()` or `alert()`. @@ -21,7 +21,7 @@ You should call the `alert()` method within the body of your `if` statement with assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(/); ``` -When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number`. +When there is a falsy value in the `#number-input` element and the `checkUserInput()` function is called, the `alert()` method should display the text `Please provide a decimal number greater than or equal to 0`. ```js const numberInput = document.getElementById("number-input"); @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number'); +assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- @@ -162,7 +162,11 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- --fcc-editable-region-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md index b3155ca5863..ff58dd73c2d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644760f4fb15ce765baebb62.md @@ -16,7 +16,7 @@ Add the `return` keyword after `alert()`. You should use the `return` keyword after `alert()`. ```js -assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number\2\s*\)\s*;?\s*return\s*;?\s*\}/i); +assert.match(String(checkUserInput), /if\s*\(\s*.+\s*\)\s*\{\s*(window\s*.)?\s*alert\(\s*('|"|`)please provide a decimal number greater than or equal to 0\2\s*\)\s*;?\s*return\s*;?\s*\}/i); ``` # --seed-- @@ -147,9 +147,13 @@ const convertBtn = document.getElementById("convert-btn"); const result = document.getElementById("result"); const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { --fcc-editable-region-- - alert("Please provide a decimal number"); + alert("Please provide a decimal number greater than or equal to 0"); --fcc-editable-region-- } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md index 02a77a08d42..27423c9223e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448ab52a902de04fc56b3fa.md @@ -163,8 +163,12 @@ const result = document.getElementById("result"); --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md index df4af71d435..316d6bdc516 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b2c9aec64c0ecd41573d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md index 378d5801521..23ea5591cf6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6448b4107aadc110a6ab4f65.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md index 02ad386b5a4..c2b4a1a0c83 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a0eadcbccaf1d13c7d137.md @@ -184,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md index 11b27904589..9bcd919f9c7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a2013b2ceea32c44d09f9.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md index c126e5af1df..8f790c31841 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644a37d773b7610ac5ede66e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md index 4e91fcc2a93..fb39d532bb4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6a23d398bb5f05ef796b.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md index 26c3362b3df..edfc3d430f0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b6ad4fa8dfd600a9dff2c.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md index afc9c30b1c1..ce6b1aaceb8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b71f678b5e1687666c88d.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md index 73a77bcc460..3953789f6dd 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b765b3bf09e6dff5e0931.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md index 33701217502..468d3d1f0d9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b77a563c51f6ff5237b99.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md index f7c6095cc0f..d6686b9d42c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b7ac994d7dd73a61b4fa6.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md index 78f52f2f7e0..99fbd27ff1e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/644b82e0dc8e5e7ca47fcd9b.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md index be89c69dd0d..8c310f66e76 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b5c05986aba539ba6ca03.md @@ -155,8 +155,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md index 51a13134d74..0193f3d12c7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b65b681a62f5fa125ff62.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md index 15b73bfd20d..879d5222ec2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6693d8e1bf60f2d92e67.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md index 3d1d67e6655..2b29108834e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6c92876e836832538e34.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md index 2bf5ac45a02..375669e22d4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b6dad50514e69df601df6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md index f12904e82e1..18169ae7acc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b7f6a575ffc807877a8c6.md @@ -185,8 +185,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md index f69252b46c7..1ab7952e27a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9d56b48971997a8055dd.md @@ -157,7 +157,6 @@ const decimalToBinary = (input) => { --fcc-editable-region-- if (input === 0) { - } --fcc-editable-region-- @@ -179,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md index 751b97efed5..45b07a94e0a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9de38df75b9a5cfc2e85.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md index 32cc7bfa5ea..108f8b469bf 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645b9ea45d3a9a9d711df81a.md @@ -151,8 +151,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md index b9bbaa6aac7..9b5ecf24e68 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c803cad8434791a5f57b6.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md index 085042eb451..133aefcbab4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c80ee8b65917a24afcb14.md @@ -163,8 +163,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md index 24530317d99..5ee1f4eb172 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81579c54a57ae7c1a5f7.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md index f2b1f016a70..91d7ff9baa7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c81683d816b7b3a044143.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md index 11d5c6bee5c..24577b3a748 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c82268b9a8d7c4debd8dc.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md index f487ccbed42..edd8eed7fe0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c85251dc1827fe4a6c4ce.md @@ -158,8 +158,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md index 60ff3b4db90..764de0026e6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c86f92a102d82250ce3e8.md @@ -168,8 +168,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md index a1c12004802..88ae74e9e9f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8a55eca2118650ee3ce3.md @@ -172,8 +172,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md index 7014ad9b647..f3818503df8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c8fe0c9505407650c4ac6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md index 4b5282b15f5..2c9401a658c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645c9e6cf5c7251f7b3308f6.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md index 92d3b8af157..2e4fff5f283 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca158fb7fa3237437fbbd.md @@ -169,8 +169,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md index 93199b364fc..57db94387e1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca381c8f87f263034954f.md @@ -164,7 +164,6 @@ const countdown = (number) => { if (number === 0) { return; } else { - } --fcc-editable-region-- }; @@ -185,8 +184,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md index 9333150260d..2f73a96ce30 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca5ca11d0d7293e61c6c7.md @@ -174,8 +174,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md index 76b84a239b1..81007bf0089 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ca62092c53f29f4ea9bf6.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md index 36b8d6c3256..a3ba473b0af 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb07132281a380223e458.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md index e731ccb5a54..a73cef028f6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb0ce6dc93738b442b0d0.md @@ -186,8 +186,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md index 305dad34633..040ed1654e0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb1306eb27a397be7f18c.md @@ -175,8 +175,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md index 62a143b1a0c..b75fd48ee0e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cb99035b8f046f1d669e4.md @@ -188,8 +188,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md index 18fe0e96d9e..2c04e2b153e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbad5f77ce948b35cf83e.md @@ -176,8 +176,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md index f14336207ac..0d5fc93f87e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cbb5ab1296e49946adb6e.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md index 883901f91b0..aa493edc56d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cc5925f158b5b33e2698f.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md index e5d312ad9b6..c4c18166c78 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ccf7ec9aca267d84b053e.md @@ -194,8 +194,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md index 80525864887..c2618ccc6e5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd17b061afb6a8cba945a.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md index afc32b3b9cb..4d86cba8a42 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd267410ac06bfcaf0bd4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md index 6e5788c6754..39fa44745e0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd2b76488fd6cb8d1ae79.md @@ -193,8 +193,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md index 8d1b080d553..e1ef5b0eedf 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd4eb6edf6e6f91acabbb.md @@ -191,8 +191,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md index b287fa7b9cf..bd5ad9d8710 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd5b506ed8970b7ea953d.md @@ -182,8 +182,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md index 65e81c34984..360f579fac6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd65c33bdc871bb72def4.md @@ -196,8 +196,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md index e4916b4a831..8bb489badd1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645cd8b7f4d8e27526694448.md @@ -178,8 +178,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md index 507dd15beb9..0753934d1b9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce315efe609814258b0bc.md @@ -162,8 +162,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md index f408c872a1c..0ec953f9c28 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce3c80f1c29824f1a8359.md @@ -161,8 +161,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md index f500f64cf9b..72a64c420e1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/645ce4375221138326895726.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md index 81e79626dd9..c247545f76c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461f79f4ea2ef042fb2c0f4.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md index a270944564a..cad03ee0201 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6461fd4c1bc6620aed6435b2.md @@ -165,8 +165,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md index d6694858bac..e000ebcfbe9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620068f97fe70ea47a9e75.md @@ -159,8 +159,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md index 3f28777f5ba..f2e73ce568c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646203cdc054d012b5d71428.md @@ -173,8 +173,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md index f44c50396eb..80faf50f1fe 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6462060b0a8a2c15726649ec.md @@ -180,8 +180,12 @@ const decimalToBinary = (input) => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md index 898e6810c9c..a91c4d99f2a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64620800e0c6ab17f0e31d6d.md @@ -167,8 +167,12 @@ const decimalToBinary = (input) => { --fcc-editable-region-- const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md index d7d2f21ea6b..a5e581eb5c7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646463be7341819690797ad2.md @@ -177,8 +177,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md index 816c54d80d1..60e85496f24 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464650a962e3d9852713549.md @@ -163,8 +163,12 @@ const showAnimation = () => { }; const checkUserInput = () => { - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md index fe5bd23f6e1..080fd7e5d1b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646577f28ade99100a55c3.md @@ -177,8 +177,12 @@ const checkUserInput = () => { --fcc-editable-region-- - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md index 71f8e6d9b20..307f4004979 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467130d7acc9b4e565c42.md @@ -11,16 +11,16 @@ Replace all instances of `parseInt(numberInput.value)` with `inputInt`. # --hints-- -You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)`. +You should replace `isNaN(parseInt(numberInput.value))` with `isNaN(inputInt)` and `parseInt(numberInput.value) < 0` with `inputInt < 0`. ```js assert.notMatch( String(checkUserInput), - /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)/ + /isNaN\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\)\s*\|\|s*\(\s*parseInt\(\s*numberInput\s*\.\s*value\s*\)\s*\<\s*0/ ); assert.match( String(checkUserInput), - /isNaN\(\s*inputInt\s*\)/ + /isNaN\(\s*inputInt\s*\)\s*\|\|\s*inputInt\s*\<\s*0/ ); ``` @@ -202,8 +202,12 @@ const checkUserInput = () => { --fcc-editable-region-- const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(parseInt(numberInput.value))) { - alert("Please provide a decimal number"); + if ( + !numberInput.value || + isNaN(parseInt(numberInput.value)) || + parseInt(numberInput.value) < 0 + ) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md index 7016303576d..c5697456106 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646467683f25e19bfc9cf9b0.md @@ -175,8 +175,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md index ab9d2d88c58..290f0285fe7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646bc0e5a60ea131e03f91.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md index 6cafd655bff..f2411256209 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64646db2c684b7a3a174a1d0.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md index 5b327d4f75d..3d6a40b8ead 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646477c82475ffaf0c3c0771.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md index 0869a85326e..56fc288392b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64647cf70a4556b5105e65b2.md @@ -179,8 +179,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md index 4ef07fc0c9d..c2ce6efe14d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648534ff5498bee5dceb28.md @@ -230,8 +230,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md index 5e0e3456392..30a924491fc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646486adf52652c0ee103aab.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md index 08bbdaf570c..f4acf865054 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648963e014f8c42a65b83a.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md index 53b02268402..d7cbe2486ec 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648c3703ad2ec796ab8d1e.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md index ab3ed1ebb98..1756035f363 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64648cf52e1ce1c8c00956ae.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md index 49b8282a89f..5396c401bed 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464905afec9efcf7328ce58.md @@ -193,8 +193,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md index 12915ab536a..cc33ad9daf1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646491d2c856afd17c2f380d.md @@ -203,8 +203,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md index ff917fd2532..5dde6d8a74e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646492f5c672c9d32f340c22.md @@ -185,8 +185,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md index 83569c2629e..8d51a9a494e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/646493b7dc53b5d45c9c50fc.md @@ -195,8 +195,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md index 966e5afd8e7..5b33204b4e4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649b243b9cc3ddabacc593.md @@ -197,8 +197,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md index 324b85b1b9f..9ff0ba1de28 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649c6d77059edf80279a32.md @@ -190,8 +190,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md index 4b6f1b3d968..d7aa266ac60 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649d2459ad94e0a772fc3f.md @@ -201,8 +201,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md index cb31c8b9bc7..8c23047903f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649efb555939e30462c79b.md @@ -199,8 +199,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md index dd9cf4e6951..c237b8d3e64 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64649f91446721e3ff391d88.md @@ -192,8 +192,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md index 5a4103ac6a6..d2cdee3c6b3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a057702d04e537d56d49.md @@ -13,8 +13,6 @@ Add the property `msg` to the animation object at the top of the stack, and set # --hints-- - - You should add the property `msg` to the animation object at the top of the stack. ```js @@ -206,8 +204,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md index cb0d7915cf3..04cfc8d0aa5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a6d98c43acecb8a7867b.md @@ -208,8 +208,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md index 5740056c9fa..eaa7cb89742 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464a9f7d81939f08d04f435.md @@ -222,8 +222,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md index e55429b4d69..c54bfe4b9f3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464aabd17cd45f1d17cfe56.md @@ -248,8 +248,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md index 62c590d2a03..fd0e3c21ce4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ab8c06ea92f30bc548d5.md @@ -251,8 +251,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md index 6f3f43b35c8..3f7450a189f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464abfb6cf778f3cb33d379.md @@ -223,8 +223,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md index 864931bb1e8..8f9b48a48cd 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464ad3c9b2e6cf58224cfa9.md @@ -207,8 +207,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md index 1fb54b5cfc9..c1de8965153 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -216,8 +216,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md index 4c2d0ebc58a..514fb77b4da 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b25851863b0a119eb7b1.md @@ -227,8 +227,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md index d222290241a..67b3ffe2e68 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b3adeee9310bd37ff636.md @@ -220,8 +220,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md index 139d0d8a420..82830d8ef5c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464b8ccb1a5d612c2f857d1.md @@ -233,8 +233,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md index 830d3b5c859..d4d9d3c82f2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/6464c6d6698a8027f8c9d6be.md @@ -215,8 +215,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } @@ -427,8 +427,8 @@ const showAnimation = () => { const checkUserInput = () => { const inputInt = parseInt(numberInput.value); - if (!numberInput.value || isNaN(inputInt)) { - alert("Please provide a decimal number"); + if (!numberInput.value || isNaN(inputInt) || inputInt < 0) { + alert("Please provide a decimal number greater than or equal to 0"); return; } diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md index 59751e48cb6..74fdc934254 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/review-dom-manipulation-by-building-a-rock-paper-scissors-game/663d5bebe2eef6128a0b1e75.md @@ -15,7 +15,11 @@ Complete the `resetGame` function that accomplishes the following: - Updates the `playerScoreSpanElement` and `computerScoreSpanElement` to display the new scores. - Hides the `resetGameBtn` button. - Shows the `optionsContainer` so the player can play again. -- Sets the `roundResultsMsg` and `winnerMsgElement` to empty strings. +- Clears the content for the `winnerMsgElement` and `roundResultsMsg` elements. + +**Tips** + +- You can use the `innerText` property to update the content of an element. To clear the content of an element, you can set the `innerText` to an empty string. Once you apply those changes, you will have completed the Rock, Paper, Scissors game! diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-h.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-h.md index a067a829054..f61adc488d9 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-h.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-h.md @@ -1,7 +1,7 @@ --- id: 637f4e3e72c65bc8e73dfe24 videoId: kcHKFZBVtf4 -title: Робота з текстом. Запитання H +title: Working With Text Question H challengeType: 15 dashedName: working-with-text-question-h --- diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-i.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-i.md index ead969bdd9b..1cdb6c48bad 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-i.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-i.md @@ -1,6 +1,6 @@ --- id: 637f4e4672c65bc8e73dfe25 -title: Робота з текстом. Запитання I +title: Working With Text Question I challengeType: 15 dashedName: working-with-text-question-i --- diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-j.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-j.md index 8e28709ba6c..0376021a777 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-j.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-question-j.md @@ -1,6 +1,6 @@ --- id: 637f4e5172c65bc8e73dfe26 -title: Робота з текстом. Запитання J +title: Working With Text Question J challengeType: 15 dashedName: working-with-text-question-j --- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md index 2ac8d692b7f..ccfe39d7100 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-84-monopoly-odds.md @@ -172,97 +172,145 @@ monopolyOdds(8); # --solutions-- ```js -function monopolyOdds(n) { - function chanceCard(position, chanceCardPosition) { - chanceCardPosition = (chanceCardPosition + 1) % 16; - if (chanceCardPosition < 6) { - position = chanceCardsMoves[chanceCardPosition]; - } else if (chanceCardPosition === 6 || chanceCardPosition === 7) { - position = nextMovesFromR[position]; - } else if (chanceCardPosition === 8) { - position = nextMovesFromU[position]; - } else if (chanceCardPosition === 9) { - position -= 3; +const GO = 0; +const JAIL = 10; +const GO_TO_JAIL = 30; + +const C1 = 11; +const E3 = 24; +const H2 = 39; + +const R1 = 5; +const R2 = 15; +const R3 = 25; + +const U1 = 12; +const U2 = 28; + +const SPECIAL_CARDS = 16; +const GAME_SQUARES = 40; + +const CC1 = 2; +const CC2 = 17; +const CC3 = 33; +const CHESTS = [CC1, CC2, CC3]; +const chestCardsMoves = [GO, JAIL]; + +const CH1 = 7; +const CH2 = 22; +const CH3 = 36; +const CHANCES = [CH1, CH2, CH3]; +const chanceCardsMoves = [GO, JAIL, C1, E3, H2, R1]; +const chanceToRailroad = { [CH1]: R2, [CH2]: R3, [CH3]: R1 }; +const chanceToUtility = { [CH1]: U1, [CH2]: U2, [CH3]: U1 }; + +function multiplyMatrix(matrix1, matrix2) { + const multiplied = []; + + for (let row = 0; row < matrix1.length; row++) { + const newRow = []; + for (let col = 0; col < matrix1[row].length; col++) { + let newCell = 0; + for (let i = 0; i < matrix1[row].length; i++) { + const value1 = matrix1[row][i]; + const value2 = matrix2[i][col]; + newCell += value1 * value2; + } + newRow.push(newCell); } - return [position, chanceCardPosition]; + multiplied.push(newRow); } + return multiplied; +} - function chestCard(position, chestPosition) { - chestPosition = (chestPosition + 1) % 16; - if (chestPosition < 2) { - position = chestCardsMoves[chestPosition]; +function normalizeRow(row) { + const sum = row.reduce((total, value) => total + value, 0); + if (sum > 0) { + for (let j = 0; j < row.length; j++) { + const value = row[j]; + row[j] = value / sum; } - return [position, chestPosition]; } +} - function isChest(position) { - return position === 2 || position === 17 || position === 33; - } +function sortByProbability(board) { + return board + .map((probability, squareNo) => [squareNo, probability]) + .sort((a, b) => a[1] - b[1]) +} - function isChance(position) { - return position === 7 || position === 22 || position === 36; - } +function getTopThree(board) { + return sortByProbability(board) + .slice(-3) + .reverse() + .map(([squareNo, _]) => squareNo.toString().padStart(2, '0') + ) + .join(''); +} - function isJail(position) { - return position === 30; - } +function didConverge(matrix1, matrix2, precision) { + return matrix1.every((row, rowNo) => row.every((value1, colNo) => Math.abs(value1 - matrix2[rowNo][colNo]) <= precision)) +} - function roll(dice) { - return Math.floor(Math.random() * dice) + 1; - } +function monopolyOdds(diceSides) { + // Based on https://github.com/ByteThisCoding/project-euler/blob/master/problems/0084/0084.ts - function getTopThree(board) { - return sortByVisits(board) - .slice(0, 3) - .map(elem => elem[0].toString().padStart(2, '0')) - .join(''); - } - - function sortByVisits(board) { - return board - .map((element, index) => [index, element]) - .sort((a, b) => a[1] - b[1]) - .reverse(); - } - - const rounds = 2000000; - const chestCardsMoves = [0, 10]; - const chanceCardsMoves = [0, 10, 11, 24, 39, 5]; - const nextMovesFromR = { 7: 15, 22: 25, 36: 5 }; - const nextMovesFromU = { 7: 12, 36: 12, 22: 28 }; - - const board = new Array(40).fill(0); - let doubleCount = 0; - let curPosition = 0; - let curChestCard = 0; - let curChanceCard = 0; - - for (let i = 0; i < rounds; i++) { - const dice1 = roll(n); - const dice2 = roll(n); - - if (dice1 === dice2) { - doubleCount++; - } else { - doubleCount = 0; + const timesRolled = new Array(diceSides * 2 + 1).fill(0); + for (let dice1 = 1; dice1 <= diceSides; dice1++) { + for (let dice2 = 1; dice2 <= diceSides; dice2++) { + timesRolled[dice1 + dice2]++; } + } - if (doubleCount > 2) { - curPosition = 10; - doubleCount = 0; - } else { - curPosition = (curPosition + dice1 + dice2) % 40; + // Transitions matrix contain probabilities of reaching each square (row values) + // from each starting square (row no.). + let transitions = []; + for (let startSquare = 0; startSquare < GAME_SQUARES; startSquare++) { + const row = new Array(GAME_SQUARES).fill(0); + for (let rollResult = 2; rollResult <= diceSides * 2; rollResult++) { + const rollChance = timesRolled[rollResult] + const position = (startSquare + rollResult) % GAME_SQUARES; - if (isChance(curPosition)) { - [curPosition, curChanceCard] = chanceCard(curPosition, curChanceCard); - } else if (isChest(curPosition)) { - [curPosition, curChestCard] = chestCard(curPosition, curChestCard); - } else if (isJail(curPosition)) { - curPosition = 10; + if (CHANCES.includes(position)) { + // Chance cards ordering movement. + for (let i = 0; i < chanceCardsMoves.length; i++) { + const nextSquare = chanceCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + row[chanceToRailroad[position]] += 2 * rollChance / SPECIAL_CARDS; + row[chanceToUtility[position]] += rollChance / SPECIAL_CARDS; + row[position - 3] += rollChance / SPECIAL_CARDS; + + // Rest non-moving Chance cards. + row[position] += (SPECIAL_CARDS - chanceCardsMoves.length) * rollChance / SPECIAL_CARDS; + } else if (CHESTS.includes(position)) { + // Community Chest cards ordering movement. + for (let i = 0; i < chestCardsMoves.length; i++) { + const nextSquare = chestCardsMoves[i]; + row[nextSquare] += rollChance / SPECIAL_CARDS; + } + // Rest non-moving Community Chest cards. + row[position] += (SPECIAL_CARDS - chestCardsMoves.length) * rollChance / SPECIAL_CARDS + } else if (position === GO_TO_JAIL) { + row[JAIL] += rollChance; + } else { + row[position] += rollChance; } } - board[curPosition]++; + normalizeRow(row) + transitions.push(row); } - return getTopThree(board); + + const precision = 0.000001; + for (let i = 0; i < GAME_SQUARES; i++) { + const next = multiplyMatrix(transitions, transitions); + if (didConverge(transitions, next, precision)) { + break; + } + transitions = next; + } + + // All rows converge to the same values. + return getTopThree(transitions[0]); } ``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md index 03f2d992b9d..9a6377db265 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/656a2a7b05241026c429e3f0.md @@ -1,6 +1,6 @@ --- id: 656a2a7b05241026c429e3f0 -title: "Діалог 2: знайомство Тома з колегою" +title: "Dialogue 2: Tom Meets the Coworker Next to Him" challengeType: 21 dashedName: dialogue-2-tom-meets-the-coworker-next-to-him --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md index 0e365c444d5..3d274510221 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-greetings-in-your-first-day-at-the-office/657e0d0037192f3d9e3d5417.md @@ -1,5 +1,5 @@ --- -id: 657e0d0037192f3d9e3d5417 +id: 657e0d0037192f3d9e3d5417 title: Завдання 128 challengeType: 22 dashedName: task-128 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md deleted file mode 100644 index 4378e29c5a2..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-analyze-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c17377f3b199fff96fa7f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md deleted file mode 100644 index 1b087682364..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-ask-and-share-about-educational-and-professional-background/657b1ee1de7216896b5b4361.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: 657b1ee1de7216896b5b4361 -title: Task 38 -challengeType: 22 -dashedName: task-38 ---- - - - -# --description-- - -Listen to the dialogue and fill in the blank correctly. This task is a review. Remember, the simple past tense is used to talk about actions or situations in the past, and the negative form is used to describe things that did not happen. - -# --fillInTheBlank-- - -## --sentence-- - -`Brian: That's interesting! So you _ work on many programming projects during your studies, did you?` - -`Sophie: No, not really. I _ around with coding, but most of my projects involved circuit designs and electrical systems.` - -## --blanks-- - -`didn't` - -### --feedback-- - -This word is used here to talk about something that was not done in the past. - ---- - -`played` - -### --feedback-- - -This word suggests that Sophie casually engaged in coding for pleasure or interest. - -# --scene-- - -```json -{ - "setup": { - "background": "company2-center.png", - "characters": [ - { - "character": "Brian", - "position": {"x":50,"y":15,"z":1.2}, - "opacity": 0 - }, - { - "character": "Sophie", - "position": {"x":50,"y":0,"z":1.4}, - "opacity": 0 - } - ], - "audio": { - "filename": "3.1-3.mp3", - "startTime": 1, - "startTimestamp": 17.98, - "finishTimestamp": 29.64 - } - }, - "commands": [ - { - "character": "Brian", - "opacity": 1, - "startTime": 0 - }, - { - "character": "Brian", - "startTime": 1, - "finishTime": 6.28, - "dialogue": { - "text": "That's interesting. So you didn't work on many programming projects during your studies, did you?", - "align": "center" - } - }, - { - "character": "Brian", - "opacity": 0, - "startTime": 6.5 - }, - { - "character": "Sophie", - "opacity": 1, - "startTime": 6.5 - }, - { - "character": "Sophie", - "startTime": 7.04, - "finishTime": 12.66, - "dialogue": { - "text": "No, not really. I played around with coding, but most of my projects involved circuit designs and electrical systems.", - "align": "center" - } - }, - { - "character": "Sophie", - "opacity": 0, - "startTime": 13.16 - } - ] -} -``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md deleted file mode 100644 index 4d375cd3f53..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-ask-for-clarification-on-code-understanding/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c13c143fbad91f96da5f3 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md deleted file mode 100644 index 3bff57ef243..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-clarify-information-in-different-interactions/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c114a439cc488b79fe60f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md index 44bf0643ee7..ebb34277837 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655c9a549835a8601764bd0b.md @@ -1,6 +1,6 @@ --- id: 655c9a549835a8601764bd0b -title: "Діалог 3: Марія та Марк говорять про свої проєкти" +title: "Dialogue 3: Maria and Mark Talk about Their Projects" challengeType: 21 dashedName: dialogue-maria-and-mark-talk-about-their-projects --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md deleted file mode 100644 index 1c95bac9751..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-popular-trends-in-technology/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c111ce03db7881e612a27 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md index fbc47c37225..9c25a840123 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/65b0dd4e70e9dcf7c402eb8e.md @@ -1,6 +1,6 @@ --- id: 65b0dd4e70e9dcf7c402eb8e -title: "Dialogue 1: Describing Other People And What They Do" +title: "Dialogue 1: Describing Other People and What They Do" challengeType: 21 dashedName: dialogue-1-describing-other-people-and-what-they-do --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md deleted file mode 100644 index 7f0e05f85c4..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-roles-and-responsibilies/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10318d878d812211966d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md deleted file mode 100644 index 4fbb1f1b539..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-tech-trends-and-updates/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c126fa57f068c8e81151f -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md index 37474e2d446..c47321719a5 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655699a46134fa74acaf6204.md @@ -1,6 +1,6 @@ --- id: 655699a46134fa74acaf6204 -title: "Dialogue 1: Learn How to Discuss Your Morning or Evening Routine" +title: "Dialogue 1: Learn How to Discuss your Morning or Evening Routine" challengeType: 21 dashedName: learn-how-to-discuss-your-morning-or-evening-routine --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md index 90a606acdd0..bca86dae769 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655a9f8d6d3af8538a178166.md @@ -1,6 +1,6 @@ --- id: 655a9f8d6d3af8538a178166 -title: "Dialogue 4: Brian and Maria Talk About Eventful Evenings" +title: "Dialogue 4: Brian and Maria Talk about Eventful Evenings" challengeType: 21 dashedName: dialogue-brian-and-maria-talk-about-eventful-evenings --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md index e0ba8532af5..30fd6abcb90 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-discuss-your-morning-or-evening-routine/655b34a4b45a76689cb429c6.md @@ -1,6 +1,6 @@ --- id: 655b34a4b45a76689cb429c6 -title: "Dialogue 5: Sophie and Brian Talk About the Weekend" +title: "Dialogue 5: Sophie and Brian Talk about the Weekend" challengeType: 21 dashedName: dialogue-sophie-and-brian-talk-about-the-weekend --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md deleted file mode 100644 index 1bacf400b48..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-document-code-for-a-project/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c179830a146a155743423 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md deleted file mode 100644 index 6d49fec3530..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-express-agreement-or-disagreement/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3f2c726838f49106971 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md deleted file mode 100644 index 91b6939c7bd..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-follow-basic-email-convention/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd36f6996fe8ced8fa3a7 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md index fea03e0f8e8..2ae59620c85 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/65a351bd69b0b72d7ed24eb5.md @@ -1,6 +1,6 @@ --- id: 65a351bd69b0b72d7ed24eb5 -title: "Dialogue 3: Talking About Motivations to Pursue a Career" +title: "Dialogue 3: Talking about Motivations to Pursue a Career" challengeType: 21 dashedName: dialogue-3-talking-about-motivations-to-pursue-a-career --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md deleted file mode 100644 index 5c853b53bf8..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-have-a-conversation-about-preferences-and-motivations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c10e9f398358790a9ffa0 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md deleted file mode 100644 index e1bc9517b30..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-help-a-coworker-troubleshoot-on-github/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c131291cbcb8febf21e64 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md new file mode 100644 index 00000000000..11b81043d98 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f629b4c12b93b615653be.md @@ -0,0 +1,14 @@ +--- +id: 661f629b4c12b93b615653be +title: "Dialogue 1: A Code Review Session" +challengeType: 21 +dashedName: dialogue-1-a-code-review-session +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md new file mode 100644 index 00000000000..cd5574525c6 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f62dcabe3153bebf1f72a.md @@ -0,0 +1,50 @@ +--- +id: 661f62dcabe3153bebf1f72a +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +In this task, you'll learn about `submitting` code for review and the phrase `take a look together`. + +`Submitting` means sending or presenting something for consideration or judgment. In a programming context, `submitting code` means sending your code to someone else, like a team member or a supervisor, for them to review it. + +`Take a look together` means to examine or review something as a group or with someone else. For example, in a work setting, saying, `Let's take a look at the report together` suggests reviewing the report as a team. + + +# --fillInTheBlank-- + +## --sentence-- + +`Hi, Tom! Thanks for _ your code for review. Let's _ a look _.` + +## --blanks-- + +`submitting` + +### --feedback-- + +It refers to the act of sending code for others to review. + +--- + +`take` + +### --feedback-- + +It's part of a common phrase used to mean examining or reviewing something. + +--- + +`together` + +### --feedback-- + +It emphasizes that the review will be a collaborative effort. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md new file mode 100644 index 00000000000..5e7dac8621b --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8cea1f72013d96065104.md @@ -0,0 +1,39 @@ +--- +id: 661f8cea1f72013d96065104 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +`Structure` in programming refers to the arrangement and organization of code. It's like the layout or blueprint of the code, showing how different parts are connected. + +An example is, `Understanding the structure of the code is crucial for effective debugging.` + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. I'm _ trying to understand the code _ here.` + +## --blanks-- + +`still` + +### --feedback-- + +It indicates that Tom is in the ongoing process of trying to comprehend the code's arrangement. + +--- + +`structure` + +### --feedback-- + +It refers to the organization and layout of the code that Tom is trying to understand. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md new file mode 100644 index 00000000000..d11ab1800dd --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f8dd25cb5063e427337c9.md @@ -0,0 +1,53 @@ +--- +id: 661f8dd25cb5063e427337c9 +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +In this dialogue, Sarah is acknowledging Tom's submission of his code and proposing the next step they should take. + +# --question-- + +## --text-- + +What does Sarah suggest they do next? + +## --answers-- + +Start a new project + +### --feedback-- + +Sarah is focused on reviewing the current code, not starting a new project. + +--- + +Discuss the project timeline + +### --feedback-- + +There's no mention of discussing timelines; Sarah wants to review the code now. + +--- + +Review the code together + +--- + +Plan a meeting with the team + +### --feedback-- + +The dialogue indicates they will review the code now, not plan further meetings. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md new file mode 100644 index 00000000000..c366e882c37 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f906d5019b63f27af438c.md @@ -0,0 +1,53 @@ +--- +id: 661f906d5019b63f27af438c +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Tom currently doing with the code? + +## --answers-- + +He has completed understanding the code structure and is ready to proceed. + +### --feedback-- + +This choice is incorrect. Tom indicates that he is still in the process of understanding the code structure. + +--- + +He is looking for errors and bugs in the code. + +### --feedback-- + +While checking for errors is part of code review, Tom specifically mentions that he is trying to understand the structure, not necessarily looking for bugs. + +--- + +He is rewriting the entire code due to structural issues. + +### --feedback-- + +There is no mention of rewriting the code; Tom is focused on understanding its current structure. + +--- + +He is in the process of trying to understand the code's structure. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md new file mode 100644 index 00000000000..c3ee1bbbd9b --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f9142b11c393fa2e77593.md @@ -0,0 +1,53 @@ +--- +id: 661f9142b11c393fa2e77593 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's response indicating about the purpose of code reviews? + +## --answers-- + +That code reviews are meant to assist in understanding and improving code + +--- + +That code reviews are only for finding and fixing errors + +### --feedback-- + +Sarah doesn't imply that code reviews only focus on errors. + +--- + +That code reviews are unnecessary and a waste of time + +### --feedback-- + +This interpretation contradicts Sarah's supportive statement about the usefulness of code reviews. + +--- + +That code reviews should be avoided if the code is not fully understood + +### --feedback-- + +Sarah's statement implies the opposite – code reviews are helpful, especially when understanding is still in progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md new file mode 100644 index 00000000000..ab6b65c0266 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92163598134025d84a8e.md @@ -0,0 +1,45 @@ +--- +id: 661f92163598134025d84a8e +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`Format` refers to arranging or structuring something in a specific way. In coding, `formatting` means organizing the code so it's easy to read and understand. + +# --fillInTheBlank-- + +## --sentence-- + +`_ suggest that you _ the code consistently. It'll be _ for everyone to read.` + +## --blanks-- + +`I'd` + +### --feedback-- + +It indicates Sarah is making a suggestion about code formatting. The first letter is capitalized. + +--- + +`format` + +### --feedback-- + +It refers to the arrangement or structuring of the code. + +--- + +`easier` + +### --feedback-- + +It implies that consistent formatting will make the code more straightforward to read. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md new file mode 100644 index 00000000000..23a409279d8 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92a4f77e0740906355cb.md @@ -0,0 +1,53 @@ +--- +id: 661f92a4f77e0740906355cb +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sarah's suggestion regarding the code? + +## --answers-- + +She suggests that the code should not be changed. + +### --feedback-- + +This choice is incorrect. Sarah is suggesting a specific change – consistent formatting. + +--- + +She recommends making the code more complex to improve its functionality. + +### --feedback-- + +Sarah's focus is on readability through formatting, not complexity or functionality. + +--- + +She advises formatting the code consistently for better readability. + +--- + +She is asking for the code to be completely rewritten. + +### --feedback-- + +Sarah's suggestion is about formatting for readability, not a complete rewrite of the code. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md new file mode 100644 index 00000000000..448544f5989 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f92f280d7f340dcfc56ca.md @@ -0,0 +1,31 @@ +--- +id: 661f92f280d7f340dcfc56ca +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +To `indent` means to move the text or code inward from the margin of the document. In programming, `indenting` is used to make the structure of the code clearer and help in understanding how blocks of code relate to each other. + +For example, `In Python, the body of a loop or a function is indented to show that it is part of that loop or function.` + +# --fillInTheBlank-- + +## --sentence-- + +`Got it. So, if I _ the blocks consistently, it improves code readability?` + +## --blanks-- + +`indent` + +### --feedback-- + +It refers to creating space at the beginning of a line to visually separate code blocks, for better clarity and readability. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md new file mode 100644 index 00000000000..fe4de77ee8d --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/661f94a82f94a341819c0c9c.md @@ -0,0 +1,57 @@ +--- +id: 661f94a82f94a341819c0c9c +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +Conditional sentences often use `if` to describe a possible situation and its outcome. For example, `If it rains, we will stay inside.` + +In programming, conditionals are used to make decisions based on certain conditions. + +In Tom's statement, he uses a conditional to understand how consistent indentation affects code readability. + +# --question-- + +## --text-- + +What does the conditional `if` in Tom's statement suggest? + +## --answers-- + +Indentation is optional in coding. + +### --feedback-- + +Indentation is not just an option; it's important for readability and sometimes necessary for the code to work correctly. + +--- + +Indentation has no effect on code. + +### --feedback-- + +Indentation significantly affects the readability of code, making it easier to understand. + +--- + +Consistent indentation improves code readability. + +--- + +Indentation makes coding more difficult. + +### --feedback-- + +Proper indentation actually makes understanding and reading code easier, not more difficult. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md new file mode 100644 index 00000000000..cca1c140e5f --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620829558e03f4653f58deb.md @@ -0,0 +1,51 @@ +--- +id: 6620829558e03f4653f58deb +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`To indent` is a verb, meaning to make spaces at the beginning of a line. For example: `To indent each line in a loop makes the code more readable.` + +`Indentation` is a noun, referring to the spaces themselves, like in `Good indentation helps in understanding the structure of the code.` + +`Maintain` is a verb, meaning to keep something in good condition, such as `It's important to maintain clean and well-commented code.` + +`Maintainability` is a noun, referring to how easy it is to keep something, like code, working well and easy to understand over time, as in `Code with high maintainability is easier to update and fix.` + +# --fillInTheBlank-- + +## --sentence-- + +`Exactly. Consistent _ makes the code _ organized. It's a good practice. It also helps _.` + +## --blanks-- + +`indentation` + +### --feedback-- + +This refers to the spaces at the beginning of lines in the code that make it look neat and organized. + +--- + +`visually` + +### --feedback-- + +This word describes how something looks, in this case, how the code looks better organized because of indentation. + +--- + +`maintainability` + +### --feedback-- + +This refers to how easy it is to keep the code working well and easy to understand as it changes over time. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md new file mode 100644 index 00000000000..b2343ca2dab --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620836572e36e46d688c04c.md @@ -0,0 +1,53 @@ +--- +id: 6620836572e36e46d688c04c +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why is consistent indentation important in coding? + +## --answers-- + +It makes the code run faster. + +### --feedback-- + +While indentation makes code more readable, it does not impact the speed at which the code runs. + +--- + +It improves code readability and maintainability. + +--- + +It changes how the code works. + +### --feedback-- + +Indentation does not change the logic or functionality of the code; it only affects its appearance. + +--- + +It's only important in some programming languages. + +### --feedback-- + +While some languages require indentation for the code to work, in all languages, consistent indentation is a good practice for readability. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md new file mode 100644 index 00000000000..534015f4e3c --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66209f7a6550cf489ba9a9cd.md @@ -0,0 +1,50 @@ +--- +id: 66209f7a6550cf489ba9a9cd +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +`To handle` something means to deal with or manage it. In programming, `handling` involves managing data or operations. For example, `to handle user input means to manage what happens when a user enters data`. + +`Error handling` is dealing with errors that occur when the program runs. It's about writing code that can manage these errors without crashing. For example, `using try-except blocks in Python to handle errors that might occur when a program runs`. + +# --question-- + +## --text-- + +What does `to handle` in programming specifically refer to? + +## --answers-- + +To ignore any problems in the code + +### --feedback-- + +`To handle` in programming doesn't mean to ignore problems but to manage them effectively. + +--- + +To write code that never has errors + +### --feedback-- + +`Handling` doesn't mean writing perfect code; it's about managing situations or data within the code effectively. + +--- + +To manage data or operations in a program + +--- + +To make the program run faster + +### --feedback-- + +`Handling` refers to managing elements in the program, not directly influencing its speed. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md new file mode 100644 index 00000000000..ea19ac062a1 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620ae52fc918b06f4a8a790.md @@ -0,0 +1,29 @@ +--- +id: 6620ae52fc918b06f4a8a790 +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`Error handling` is an important concept in programming. It refers to the process of writing code that can manage and respond to errors that occur during execution. This prevents the program from crashing and allows for a smoother user experience. Techniques for `error handling` vary among programming languages. For instance, in Python, using try-except blocks is a common method. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error _.` + +## --blanks-- + +`handling` + +### --feedback-- + +It is the process of managing and responding to errors in a program to prevent it from crashing. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md new file mode 100644 index 00000000000..87b8d757baf --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620aeaa6aaa2807531e86f9.md @@ -0,0 +1,50 @@ +--- +id: 6620aeaa6aaa2807531e86f9 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + +# --description-- + +The verb `encounter` means to meet or come across something, especially something unexpected. In programming, `encountering` an issue or a bug means coming across a problem while the code is running. + +For example, `You might encounter an error if the user inputs the wrong type of data.` It's about facing or dealing with something unexpectedly. + +# --question-- + +## --text-- + +What does `encounter` mean in the context of programming? + +## --answers-- + +To come across or face a problem unexpectedly + +--- + +To solve a problem quickly + +### --feedback-- + +While `encountering` a problem often leads to solving it, the word `encounter` itself means to come across a problem, not to solve it. + +--- + +To write code without errors + +### --feedback-- + +`Encountering` refers to coming across problems, not writing code that is free of errors. + +--- + +To ignore a problem in the code + +### --feedback-- + +`Encountering` a problem means coming across it, not ignoring it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md new file mode 100644 index 00000000000..4803f03ee14 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d099d9fdfe0a09652a58.md @@ -0,0 +1,50 @@ +--- +id: 6620d099d9fdfe0a09652a58 +title: Task 15 +challengeType: 19 +dashedName: task-15 +--- + +# --description-- + +The word `potential` refers to something that could happen or exist in the future, but it isn't certain. In programming, talking about a `potential issue` means there could be a problem with the code that might occur under certain conditions. It's not a definite problem but something that could become one. + +For example, `There is a potential issue if the user enters a very large number.` This means the problem isn't happening right now, but it could happen if the situation occurs. + +# --question-- + +## --text-- + +What does `potential` mean when discussing programming issues? + +## --answers-- + +A problem that has already happened + +### --feedback-- + +`Potential` refers to something that could happen, not something that has already occurred. + +--- + +A problem that never happens + +### --feedback-- + +While a `potential` issue might not happen, it's not correct to say it never happens. It's something that could occur. + +--- + +A problem that could happen under certain conditions + +--- + +A solution to a problem + +### --feedback-- + +`Potential` refers to a possible future problem, not a solution. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md new file mode 100644 index 00000000000..c17e2e01ac4 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d3003ddaf50aac1bc76d.md @@ -0,0 +1,54 @@ +--- +id: 6620d3003ddaf50aac1bc76d +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + +# --description-- + +A `statement` in programming is a line of code that performs a specific action. For example, `print("Hello World")` is a statement that displays text. + +A `condition` is a test in code that checks if something is true or false. For instance, `if x > 5` checks if "x" is greater than 5. + +A `conditional` is generally an adjective referring to something that depends on a `condition` or `conditions`. In programming, it is used to describe any expression or feature that involves logical `conditions`. It's not limited to explicit "if-then" structure but can also refer to any setup that alters behavior based on `conditions`, including loops or even ternary operators. + +A `conditional statement` is a statement that only runs if a certain `condition` is true. For example, `if x > 5: print("Large")` is a `conditional statement` because it prints `Large` only if `x` is greater than 5. + +# --question-- + +## --text-- + +What is a `conditional statement` in programming? + +## --answers-- + +A line of code that runs without checking any `conditions` + +### --feedback-- + +A `conditional statement` does involve checking `conditions`; it's not a line of code that runs without any checks. + +--- + +A test to see if a program is working correctly + +### --feedback-- + +While a `conditional statement` can help check how a program works, it's primarily used to run code based on `conditions`, not to test the program. + +--- + +A statement that outputs a `condition` + +### --feedback-- + +A `conditional statement` uses a `condition` to decide whether to execute, but it doesn't output a `condition` itself. + +--- + +A statement that only executes if a certain `condition` is true + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md new file mode 100644 index 00000000000..3e1b6668c88 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d5fa0e60d10ba81bd831.md @@ -0,0 +1,47 @@ +--- +id: 6620d5fa0e60d10ba81bd831 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`Gracefully` means dealing with problems in a smooth, efficient, and not abrupt way. When a program handles errors `gracefully`, it manages issues without crashing or causing major disruptions. For example, instead of stopping suddenly, a program might show a helpful error message. + +Remember, `encounter` means to come across something unexpectedly, and a `conditional statement` is a code that runs only if a certain condition is true. + +# --fillInTheBlank-- + +## --sentence-- + +`Now, let's talk about error handling. If you _ potential issues, it's a good idea to use conditional _ to handle them _.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across or face something, especially unexpectedly. + +--- + +`statements` + +### --feedback-- + +It is a line of code that runs only if a specific condition is met. + +--- + +`gracefully` + +### --feedback-- + +In programming, it means dealing with something in a smooth and efficient way, often preventing the program from crashing. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md new file mode 100644 index 00000000000..dc1a7004b1b --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d6cd9452910c27da19f1.md @@ -0,0 +1,53 @@ +--- +id: 6620d6cd9452910c27da19f1 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +In this conversation, Sarah is explaining important concepts in programming. `Encounter` means to come across something, `potential issues` are problems that might happen, `conditional statements` are codes that run only if certain conditions are met, and `gracefully` refers to managing problems smoothly. + +# --question-- + +## --text-- + +What is Sarah suggesting to Tom about handling errors in programming? + +## --answers-- + +To use conditional statements to manage potential issues smoothly + +--- + +To ignore any potential issues that are encountered + +### --feedback-- + +Ignoring potential issues is not a good practice. Sarah suggests managing them smoothly. + +--- + +To stop the program whenever an error is encountered + +### --feedback-- + +Stopping the program is not handling errors gracefully. Sarah talks about managing them smoothly. + +--- + +To only focus on errors that happen frequently + +### --feedback-- + +Focusing only on frequent errors doesn't cover all potential issues. Sarah is talking about handling any potential issues gracefully. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md new file mode 100644 index 00000000000..a57404ef206 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d86f3f8def0d220fe3d8.md @@ -0,0 +1,54 @@ +--- +id: 6620d86f3f8def0d220fe3d8 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +In his response, what is Tom referring to by `them`? + +## --answers-- + +Conditional statements + +### --feedback-- + +Tom is not referring to the conditional statements themselves, but to what these statements will manage. + +--- + +Error handling techniques + +### --feedback-- + +While error handling is the broader topic, Tom is specifically referring to something within this context that needs management. + +--- + +Potential issues + +--- + +Programming languages + +### --feedback-- + +Tom's reference is not about programming languages, but about a specific aspect within the topic of error handling. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md new file mode 100644 index 00000000000..ede691c03d3 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620d9bfd778060e1e264398.md @@ -0,0 +1,45 @@ +--- +id: 6620d9bfd778060e1e264398 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It prevents _ crashes and provides a _ user experience.` + +## --blanks-- + +`Absolutely` + +### --feedback-- + +This word is used to strongly agree or confirm something. This word is capitalized. + +--- + +`unexpected` + +### --feedback-- + +This word describes something that happens without warning, which is what good error handling tries to avoid. + +--- + +`better` + +### --feedback-- + +This word is used to compare and show improvement over something else, in this case, the user experience. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md new file mode 100644 index 00000000000..55f8f580bc8 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da144418460e75025a66.md @@ -0,0 +1,45 @@ +--- +id: 6620da144418460e75025a66 +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. It _ unexpected _ and _ a better user experience.` + +## --blanks-- + +`prevents` + +### --feedback-- + +This verb means to stop something from happening. + +--- + +`crashes` + +### --feedback-- + +This noun refers to sudden failures in the program. + +--- + +`provides` + +### --feedback-- + +This verb means to supply or make available something needed or beneficial. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md new file mode 100644 index 00000000000..e5571f08f36 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620da6a9775020ecae448f4.md @@ -0,0 +1,54 @@ +--- +id: 6620da6a9775020ecae448f4 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +`It` often refers to a concept or a subject mentioned earlier in the conversation. + +# --question-- + +## --text-- + +In Sarah's response, what is she referring to with `it`? + +## --answers-- + +The user experience + +### --feedback-- + +While the user experience is mentioned, it is not the subject Sarah refers to with `it`. + +--- + +The program itself + +### --feedback-- + +Sarah's focus is not on the program in general, but on a specific aspect of programming practice. + +--- + +Tom's question + +### --feedback-- + +`It` refers to something specific in programming, not to Tom's question itself. + +--- + +Using conditional statements + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md new file mode 100644 index 00000000000..e5005e04a9b --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dbe988a71c0f99829974.md @@ -0,0 +1,37 @@ +--- +id: 6620dbe988a71c0f99829974 +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +Understanding phrases that show a change or ending in a conversation is useful, especially in a learning or meeting context. + +# --fillInTheBlank-- + +## --sentence-- + +`To _, let's _ the comments.` + +## --blanks-- + +`finish` + +### --feedback-- + +This word is often used to indicate the end or conclusion of an activity or discussion. + +--- + +`consider` + +### --feedback-- + +It means to think about something carefully, often before making a decision or judgment. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md new file mode 100644 index 00000000000..3be027cead7 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dcbedf73a4100939b90d.md @@ -0,0 +1,49 @@ +--- +id: 6620dcbedf73a4100939b90d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +`Including comments` in code is an essential practice for clarity and maintainability. + +`Comments` provide explanations or insights into what the code is doing, which is especially useful for anyone who might work on the code in the future. + +Understanding the importance of `comments` and when to use them is a key part of good coding practices. + +# --fillInTheBlank-- + +## --sentence-- + +`If you include comments when _ necessary, it helps _ developers understand the _.` + +## --blanks-- + +`they're` + +### --feedback-- + +It is a contraction of `they are`, here referring to the times when comments are needed. + +--- + +`future` + +### --feedback-- + +It refers to developers who will work on or review the code at a later time. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or the thought process behind the code. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md new file mode 100644 index 00000000000..c22fc49be12 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620de23b04dcb10920f2666.md @@ -0,0 +1,53 @@ +--- +id: 6620de23b04dcb10920f2666 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Why does Sarah emphasize the inclusion of comments in code? + +## --answers-- + +Because it makes the code run faster + +### --feedback-- + +Comments in the code do not affect the speed at which the code runs. They are for human understanding. + +--- + +To help future developers understand the logic of the code + +--- + +Because comments are required in all programming languages + +### --feedback-- + +While comments are helpful, they are not a strict requirement in all programming languages. + +--- + +To prevent the code from having errors + +### --feedback-- + +Comments help in understanding the code but do not directly prevent errors in the code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md new file mode 100644 index 00000000000..84eb4aa4312 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620dfcbc189b31168594021.md @@ -0,0 +1,57 @@ +--- +id: 6620dfcbc189b31168594021 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Tom is using a common learning strategy: repeating information in his own words to confirm his understanding. + +He uses the preposition `by` to describe the method or way of doing something. + +In this case, he's talking about explaining complex or difficult parts of the code with comments. This helps other people, like future developers, understand the code. He ends his statement with a confirmation question, which is a good practice to confirm correct understanding. + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So _ explaining the _ parts with comments, I’ll help _ people understand the code. Is _ right?` + +## --blanks-- + +`by` + +### --feedback-- + +The preposition is used here to introduce the method or way something is done. + +--- + +`complex` + +### --feedback-- + +It refers to parts of the code that are complicated or not easy to understand. + +--- + +`other` + +### --feedback-- + +In this context, it refers to people apart from Tom, likely future developers or teammates. + +--- + +`that` + +### --feedback-- + +It is used here to ask for confirmation, ensuring he understood the concept correctly. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md new file mode 100644 index 00000000000..e0aa29329a9 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e3abcd0702129df8d7d0.md @@ -0,0 +1,39 @@ +--- +id: 6620e3abcd0702129df8d7d0 +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +`Precise` is an adjective meaning exact or accurate. When you add `-ly` to an adjective like `precise`, it becomes `precisely`, an adverb. For example, `He was precisely on time` means he was exactly on time. + +`Within` is a preposition that means inside or not further than an area or period. For example, `The keys are within the house` means the keys are inside the house. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's a form of documentation _ the code. Great job grasping these concepts!` + +## --blanks-- + +`Precisely` + +### --feedback-- + +It is used to agree strongly or to confirm that something is exact or correct. + +--- + +`within` + +### --feedback-- + +It means inside the scope or boundaries of something, in this case, the code. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md new file mode 100644 index 00000000000..a90312baf45 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e4a094f6f213164ef107.md @@ -0,0 +1,41 @@ +--- +id: 6620e4a094f6f213164ef107 +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`To grasp` is a verb meaning to understand something. It changes to `grasping` after words like `is` or `am` to describe the action that is happening now. For example, `She is grasping the concept` means she is currently understanding the concept. + +When someone says `great job grasping`, it means "you did a very good job at understanding something". It's a way of praising someone for learning something, especially if it was challenging. + +For example, if you start understanding how to use a computer and someone says, `Great job grasping how to use the computer!` They mean you are doing well at learning something new. + +# --fillInTheBlank-- + +## --sentence-- + +`Precisely. It's a _ of documentation within the code. Great job _ these concepts!` + +## --blanks-- + +`form` + +### --feedback-- + +It means a way of doing something. + +--- + +`grasping` + +### --feedback-- + +It indicates the action of understanding or comprehending, currently happening. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md new file mode 100644 index 00000000000..b7e5e9a6122 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e51c36d18c137b887081.md @@ -0,0 +1,54 @@ +--- +id: 6620e51c36d18c137b887081 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What concept is Tom confirming his understanding of in his conversation with Sarah? + +## --answers-- + +Using comments to help others understand code + +--- + +Writing complex code without comments + +### --feedback-- + +Tom’s focus is on explaining complex code with comments, not writing it without comments. + +--- + +Ignoring comments in the code + +### --feedback-- + +The conversation is about the importance of comments, not ignoring them. + +--- + +Only Sarah understanding the code + +### --feedback-- + +The discussion is about helping others, not just Sarah, understand the code. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md new file mode 100644 index 00000000000..f75938ea0b4 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e5c0b65d6913e1d94e8a.md @@ -0,0 +1,53 @@ +--- +id: 6620e5c0b65d6913e1d94e8a +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks. And great _, by the way. I'll make the _ changes and _ the code _.` + +## --blanks-- + +`tips` + +### --feedback-- + +They are pieces of advice or suggestions that can help improve something. + +--- + +`suggested` + +### --feedback-- + +It refers to the recommendations or advice that were given. + +--- + +`submit` + +### --feedback-- + +It means to present or send something (like code) for review or consideration. + +--- + +`again` + +### --feedback-- + +It implies doing something another time or repeating an action. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md new file mode 100644 index 00000000000..496e2f69b0f --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6620e608b5f72b14311595b3.md @@ -0,0 +1,53 @@ +--- +id: 6620e608b5f72b14311595b3 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How does Tom show he values Sarah's advice and what does he plan to do next? + +## --answers-- + +He asks for more clarification and decides to wait. + +### --feedback-- + +Tom doesn't ask for more information; he thanks Sarah and talks about his next steps. + +--- + +He thanks Sarah and plans to review the code later. + +### --feedback-- + +Tom does thank Sarah, but he specifically mentions making changes and resubmitting the code, not just reviewing it later. + +--- + +He appreciates the tips and plans to apply the changes to his code. + +--- + +He disagrees with the tips but decides to try them out. + +### --feedback-- + +Tom shows appreciation for the tips, indicating that he agrees with Sarah's suggestions, not disagrees. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md new file mode 100644 index 00000000000..1590ec1e391 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229a912046b51dd81b35a.md @@ -0,0 +1,14 @@ +--- +id: 662229a912046b51dd81b35a +title: "Dialogue 2: Tom's Onboarding with Maria" +challengeType: 21 +dashedName: dialogue-2-toms-onboarding-with-maria +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md new file mode 100644 index 00000000000..4de6193c1ee --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662229d4a4690852e430a704.md @@ -0,0 +1,37 @@ +--- +id: 662229d4a4690852e430a704 +title: Task 32 +challengeType: 22 +dashedName: task-32 +--- + + + +# --description-- + +The expression `to be thrilled` means to be very excited or happy about something. In a team or work setting, saying `we're thrilled to have you` shows a high level of enthusiasm about someone joining. It's a warm and positive way to welcome new members. + +# --fillInTheBlank-- + +## --sentence-- + +`Welcome to the team! We're _ to have you on _.` + +## --blanks-- + +`thrilled` + +### --feedback-- + +It expresses a high level of excitement about the new team member. + +--- + +`board` + +### --feedback-- + +In this context, it means being part of the team. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md new file mode 100644 index 00000000000..5cec0559c98 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222a1ac43cd953b431e464.md @@ -0,0 +1,39 @@ +--- +id: 66222a1ac43cd953b431e464 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +`Onboarding` in a workplace refers to the process of introducing a new employee to their job. This includes training, learning about the company culture, and meeting team members. For example, `During your onboarding, you'll learn how our team operates.` + +`To hesitate` means to pause before doing something, often because you are not sure or are nervous. In this context, saying `don't hesitate to ask` means you should feel free to ask questions without worrying. For example, `If you're unsure about the report, don't hesitate to ask for help.` + +# --fillInTheBlank-- + +## --sentence-- + +`If you have any questions during your _, don't _ to ask.` + +## --blanks-- + +`onboarding` + +### --feedback-- + +It is the process of getting used to a new job or position. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay in uncertainty. Here, it's encouraged not to delay asking questions. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md new file mode 100644 index 00000000000..e13f2f31382 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b2a53c6be5671cd5b38.md @@ -0,0 +1,53 @@ +--- +id: 66222b2a53c6be5671cd5b38 +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Understanding both the meaning and the tone of a sentence is important, especially in a workplace setting. + +# --question-- + +## --text-- + +What is the tone and meaning of Maria's sentence to Tom? + +## --answers-- + +Formal and instructive, emphasizing rules + +### --feedback-- + +Maria's tone is not formal or strictly instructive; it's welcoming and offers support. + +--- + +Uncertain and questioning Tom's ability + +### --feedback-- + +Maria's statement is confident and supportive, not showing uncertainty or doubt about Tom's ability. + +--- + +Welcoming and supportive, encouraging questions + +--- + +Indifferent and uninterested in Tom's role + +### --feedback-- + +Maria's words are enthusiastic and encouraging, showing interest in Tom's integration into the team. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md new file mode 100644 index 00000000000..b3f70d6d7c2 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222b6f66670e574eedea0d.md @@ -0,0 +1,47 @@ +--- +id: 66222b6f66670e574eedea0d +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`To be eager` means to be very excited and interested to do something or for something to happen. For example, `I'm eager to learn new things` shows a strong enthusiasm about learning. + +`To get started` means to begin doing something. It indicates the initiation of an action or activity, like `Let's get started on the project`. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I _ that. I'm _ to get _.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +In this context, it means Tom is thankful for Maria's welcoming and helpful approach. + +--- + +`eager` + +### --feedback-- + +It shows Tom's strong enthusiasm and readiness to begin his new role. + +--- + +`started` + +### --feedback-- + +It means to begin, indicating Tom's readiness to initiate his new responsibilities. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md new file mode 100644 index 00000000000..60357b37c80 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222be67d3aa258bc576aee.md @@ -0,0 +1,47 @@ +--- +id: 66222be67d3aa258bc576aee +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +The expression `first things first` is used to emphasize that important things should be done before anything else. It's often said at the beginning of a task to focus on the most important steps first. For example, `First things first, let's review the project plan` means to start with reviewing the plan before moving to other tasks. + +An `environment`, in a technological context, often refers to a set of software and hardware conditions in which a system operates. For example, a `development environment` is where programmers write and test their code. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to _ that. Now, _ things first. Install the development _ correctly, and you'll be all set to start coding.` + +## --blanks-- + +`hear` + +### --feedback-- + +In this context, it refers to Maria receiving and acknowledging Tom's response. + +--- + +`first` + +### --feedback-- + +It is used to prioritize the most important tasks. + +--- + +`environment` + +### --feedback-- + +It refers to the software setup needed for coding. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md new file mode 100644 index 00000000000..d4810069c4a --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222c85f656035a4b1325f6.md @@ -0,0 +1,59 @@ +--- +id: 66222c85f656035a4b1325f6 +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +`To be all set` means to be fully prepared or ready to go. For example, `Once you finish your training, you'll be all set to start working` indicates that after training, you will be ready to begin work. + +`Things` in `first things first` emphasizes the importance of doing the most important tasks before anything else. + +`To install` means to set up software or equipment so it is ready to be used. For instance, `You need to install the software on your computer.` + +`Correctly` means in the right way or without mistakes. For example, `Make sure you follow the instructions correctly` implies that you should follow instructions accurately. + +# --fillInTheBlank-- + +## --sentence-- + +`Great to hear that. Now, first _ first. _ the development environment _, and you'll be all _ to start coding.` + +## --blanks-- + +`things` + +### --feedback-- + +It is part of an expression focusing on the priority of tasks. + +--- + +`Install` + +### --feedback-- + +It refers to setting up the development environment in this context. + +--- + +`correctly` + +### --feedback-- + +It emphasizes the importance of proper installation. + +--- + +`set` + +### --feedback-- + +It means being fully prepared or ready. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md new file mode 100644 index 00000000000..4e59fc8b756 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222e95ac25115f2dc5f171.md @@ -0,0 +1,53 @@ +--- +id: 66222e95ac25115f2dc5f171 +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task checks for understanding of Maria's instructions to Tom. + +# --question-- + +## --text-- + +What is Maria instructing Tom to do first before he starts coding? + +## --answers-- + +To start coding immediately + +### --feedback-- + +Maria specifies a crucial step before Tom starts coding, not to begin coding right away. + +--- + +To complete a training session + +### --feedback-- + +While training might be important, Maria specifically mentions installing the development environment first. + +--- + +To install the development environment correctly + +--- + +To prepare a project plan + +### --feedback-- + +Preparing a project plan isn't mentioned as the first step by Maria. She focuses on setting up the development environment. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md new file mode 100644 index 00000000000..6126bc7b143 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222ef6f67cf4605103f73a.md @@ -0,0 +1,45 @@ +--- +id: 66222ef6f67cf4605103f73a +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Smoothly` means without any problems, interruptions, or difficulties. Understanding these phrases is important in following procedures and expecting positive outcomes. + +# --fillInTheBlank-- + +## --sentence-- + +`How can I do this? If I _ the installation guide _ by step, everything should work _, right?` + +## --blanks-- + +`follow` + +### --feedback-- + +It means to go along with or adhere to instructions. + +--- + +`step` + +### --feedback-- + +It means a stage of a process. It is part of a phrase emphasizing following each stage of the instructions in order. + +--- + +`smoothly` + +### --feedback-- + +It indicates an expectation of no problems or interruptions in the process. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md new file mode 100644 index 00000000000..251c451743a --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66222fe05f1727629efcbeb9.md @@ -0,0 +1,53 @@ +--- +id: 66222fe05f1727629efcbeb9 +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Tom expect by following the installation guide step by step? + +## --answers-- + +He will encounter many problems. + +### --feedback-- + +Tom's expectation is the opposite; he believes that following the steps will prevent problems. + +--- + +He needs additional help to complete it. + +### --feedback-- + +Tom implies that by following the guide, he should be able to complete the task without additional help. + +--- + +Everything should work smoothly. + +--- + +The process will be very time-consuming. + +### --feedback-- + +Following the steps is expected to make the process efficient, not necessarily time-consuming. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md new file mode 100644 index 00000000000..5f81a875395 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662230f3b1103a655e612d6c.md @@ -0,0 +1,37 @@ +--- +id: 662230f3b1103a655e612d6c +title: Task 41 +challengeType: 22 +dashedName: task-41 +--- + + + +# --description-- + +The word `seamless` in this context means without any interruptions, problems, or noticeable transitions. It implies a process that is smooth and efficient, without any complications. For example, `a seamless integration of new software` means the software was added without causing any issues or being difficult to combine with existing systems. + +# --fillInTheBlank-- + +## --sentence-- + +`_. It's crucial for a _ setup.` + +## --blanks-- + +`Exactly` + +### --feedback-- + +It is used here by Maria to show strong agreement with Tom's statement. + +--- + +`seamless` + +### --feedback-- + +It describes a setup process that is smooth, without interruptions or problems. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md new file mode 100644 index 00000000000..5d37e1353ed --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662231495ea4e36644b0a1f3.md @@ -0,0 +1,49 @@ +--- +id: 662231495ea4e36644b0a1f3 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +If something is `familiar`, it means you know it or recognize it because you have seen or experienced it before. For example, `familiar software` is software you have used or learned about previously. + +`Unfamiliar` is the opposite, referring to something you do not know or recognize, like `unfamiliar terminology`. + +`Valuable` means something is very useful or important. In the context of work or study, a `valuable resource` is something that provides a lot of help or information, like `valuable feedback`. + +# --fillInTheBlank-- + +## --sentence-- + +`In case you see any _ terms or _, always check the documentation. The documentation is a _ resource.` + +## --blanks-- + +`unfamiliar` + +### --feedback-- + +It refers to things you do not know or have not experienced before. + +--- + +`concepts` + +### --feedback-- + +They are ideas or principles in a specific field, like programming. + +--- + +`valuable` + +### --feedback-- + +It describes the documentation as very useful and important resource. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md new file mode 100644 index 00000000000..be9db3819d7 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662232980acab86a1f32aed0.md @@ -0,0 +1,53 @@ +--- +id: 662232980acab86a1f32aed0 +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Maria instructing about the setup process and dealing with unfamiliar information? + +## --answers-- + +To ensure a seamless setup and use documentation for unfamiliar terms + +--- + +To avoid using documentation as it's often outdated + +### --feedback-- + +Maria's advice is to use the documentation, not avoid it, as it is a valuable resource. + +--- + +To learn everything by heart instead of relying on documentation + +### --feedback-- + +Maria suggests using documentation for unfamiliar terms, not memorizing everything. + +--- + +To handle setup without any preparation or resources + +### --feedback-- + +Maria emphasizes the need for a seamless setup and using documentation, which requires preparation and resources. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md new file mode 100644 index 00000000000..9f433236913 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662234053814b36dc0ab9ae5.md @@ -0,0 +1,37 @@ +--- +id: 662234053814b36dc0ab9ae5 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +`Keep in mind` is a phrase used to indicate that someone will remember and consider what has been said. It shows understanding and intention to remember the information for future reference. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. _ keep that in _.` + +## --blanks-- + +`I'll` + +### --feedback-- + +It is a contraction for `I will`, indicating Tom's commitment to remembering Maria's advice. + +--- + +`mind` + +### --feedback-- + +In this context, it refers to Tom's memory or attention, where he plans to keep Maria's advice. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md new file mode 100644 index 00000000000..21888867483 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622346c798d906ee4d31846.md @@ -0,0 +1,67 @@ +--- +id: 6622346c798d906ee4d31846 +title: Task 45 +challengeType: 22 +dashedName: task-45 +--- + + + +# --description-- + +`Last` refers to the final item in a series or the most recent. For example, `The last chapter of the book` means the final chapter. + +`Collaborative` means working together with others to achieve a common goal. In a team, being `collaborative` involves sharing ideas, helping each other, and working jointly on projects. + +`Supporting each other` means helping and encouraging one another. In a team context, it's about team members assisting and motivating each other. + +`The key to` is used to express that something is crucial or very important for achieving a certain result. For example, `Practicing every day is the key to improving your English skills.` + +# --fillInTheBlank-- + +## --sentence-- + +`One _ thing. We're a _ team and _ each other is _ to our success. So don't _ to ask for help from the team if you need it. Welcome again.` + +## --blanks-- + +`last` + +### --feedback-- + +In this context, it refers to the final point Maria wants to make. + +--- + +`collaborative` + +### --feedback-- + +It describes the team’s nature of working together and helping each other. + +--- + +`supporting` + +### --feedback-- + +It is about team members helping and encouraging one another. + +--- + +`key` + +### --feedback--- + +It refers to something that is very important in achieving a specific goal or outcome. + +--- + +`hesitate` + +### --feedback-- + +It means to pause before doing something, often because you are not sure or are nervous. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md new file mode 100644 index 00000000000..06a24b3d5d8 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662236f6f07f7775b35ca43d.md @@ -0,0 +1,53 @@ +--- +id: 662236f6f07f7775b35ca43d +title: Task 46 +challengeType: 19 +dashedName: task-46 +--- + + + +# --description-- + +Maria's statement covers important aspects of team dynamics and the work culture. + +# --question-- + +## --text-- + +What key points does Maria emphasize about the team's work culture? + +## --answers-- + +Working independently is most important for success. + +### --feedback-- + +Maria emphasizes collaboration and support, not working independently. + +--- + +Asking for help is discouraged in the team. + +### --feedback-- + +Maria encourages asking for help, indicating it's an accepted and positive action in the team. + +--- + +Collaboration and support are vital for the team's success. + +--- + +The team values competition over cooperation. + +### --feedback-- + +Maria's statement highlights cooperation and support, not competition. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md new file mode 100644 index 00000000000..2039bd3ab54 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6622372ee4a646767edcbfde.md @@ -0,0 +1,37 @@ +--- +id: 6622372ee4a646767edcbfde +title: Task 47 +challengeType: 22 +dashedName: task-47 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Thank you. I'm looking _ to _ to the team.` + +## --blanks-- + +`forward` + +### --feedback-- + +It's part of a phrase expressing anticipation or excitement about a future event or action. + +--- + +`contributing` + +### --feedback-- + +In this context, it means adding value or assistance to the team's efforts. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md new file mode 100644 index 00000000000..fbd2037bf95 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623472f50e39ddeccb047c6.md @@ -0,0 +1,14 @@ +--- +id: 6623472f50e39ddeccb047c6 +title: "Dialogue 3: Collaborating on a Bug Fix" +challengeType: 21 +dashedName: dialogue-3-collaborating-on-a-bug-fix +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md new file mode 100644 index 00000000000..1bc9b6ae5d0 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662347b1bb7b3cdfcccffa57.md @@ -0,0 +1,47 @@ +--- +id: 662347b1bb7b3cdfcccffa57 +title: Task 48 +challengeType: 22 +dashedName: task-48 +--- + + + +# --description-- + +`Heard` is the past tense of the verb `to hear`, which means to become aware of something through the ears or to be informed of something. For example, `I heard the news yesterday` means you became aware of the news the day before. + +An `authentication module` in a software context is a part of a system responsible for verifying the identity of users. It's often used in login systems. For example, `The authentication module checks the username and password` means it verifies the user's credentials. + +# --fillInTheBlank-- + +## --sentence-- + +`Sophie, I _ you're working on _ that bug in the user _ module. Need any help?` + +## --blanks-- + +`heard` + +### --feedback-- + +It is the past tense of `to hear`, indicating Brian was informed about Sophie's task. + +--- + +`fixing` + +### --feedback-- + +It refers to the act of repairing or resolving the issue (bug) in the software. + +--- + +`authentication` + +### --feedback-- + +It refers to the process of verifying a user's identity in the software module. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md new file mode 100644 index 00000000000..7d0b8187f91 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234815e0a0b2e1967556c1.md @@ -0,0 +1,53 @@ +--- +id: 66234815e0a0b2e1967556c1 +title: Task 49 +challengeType: 19 +dashedName: task-49 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian offering to help Sophie with? + +## --answers-- + +He is offering to help with a team meeting. + +### --feedback-- + +Brian's offer is specific to a task, not a meeting. + +--- + +He wants to assist in planning a new project. + +### --feedback-- + +Brian's offer of help is related to a current task, not planning something new. + +--- + +He proposes to help with user training. + +### --feedback-- + +Brian's offer is to help with a technical issue, not user training. + +--- + +He is offering to help fix a bug in the user authentication module. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md new file mode 100644 index 00000000000..fe910fd009a --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234877415f31e2b8717a91.md @@ -0,0 +1,53 @@ +--- +id: 66234877415f31e2b8717a91 +title: Task 50 +challengeType: 22 +dashedName: task-50 +--- + + + +# --description-- + +`Logic` in programming refers to the sequence and structure of the instructions in code. For instance, `Changing the logic of the code can alter its behavior.` + +# --fillInTheBlank-- + +## --sentence-- + +`Yeah, I'm a bit _. If I change the _ in this function, it _ solve the issue, but I'm not _.` + +## --blanks-- + +`stuck` + +### --feedback-- + +Here it means Sophie is having difficulty progressing with the problem. + +--- + +`logic` + +### --feedback-- + +It refers to the reasoning or sequence of instructions in the function Sophie is working on. + +--- + +`might` + +### --feedback-- + +It indicates the possibility that changing the logic could solve the issue. + +--- + +`sure` + +### --feedback-- + +It means being confident or certain about something. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md new file mode 100644 index 00000000000..b9f14370944 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234939088c72e4a35b3608.md @@ -0,0 +1,53 @@ +--- +id: 66234939088c72e4a35b3608 +title: Task 51 +challengeType: 19 +dashedName: task-51 +--- + + + +# --description-- + +Sophie's statement reflects a common situation in problem-solving, especially in technical fields like programming. She is considering a possible solution. + +# --question-- + +## --text-- + +What is Sophie considering doing to solve her problem? + +## --answers-- + +She plans to ask for immediate help. + +### --feedback-- + +Sophie is thinking about a specific change in her work, not immediately seeking help. + +--- + +She is thinking of changing the logic in the function to solve the issue. + +--- + +She wants to leave the function as it is. + +### --feedback-- + +Sophie is considering making a change, not leaving the function unchanged. + +--- + +She is sure that changing the function will work. + +### --feedback-- + +Sophie expresses uncertainty, indicating she is not sure if the change will solve the issue. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md new file mode 100644 index 00000000000..4d42924f67b --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662349f0cadfcce6b20889bd.md @@ -0,0 +1,55 @@ +--- +id: 662349f0cadfcce6b20889bd +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +`To consider` means to think carefully about something, especially when making decisions. For example, `consider the consequences of your actions` means to think about what will happen as a result of what you do. + +`Parts` of a system refers to the different components or sections of the system. In a software system, different `parts` might include various modules or functions. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem, Sophie. Let's check it _. If you _ the logic, _ the impact it might have on other _ of the system.` + +## --blanks-- + +`together` + +### --feedback-- + +Here it implies collaboration between Brian and Sophie. + +--- + +`modify` + +### --feedback-- + +It refers to making changes to the function's logic. + +--- + +`consider` + +### --feedback-- + +It means to think about the potential effects of the changes. + +--- + +`parts` + +### --feedback-- + +They are different components or sections of the software system. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md new file mode 100644 index 00000000000..cf96768412b --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234a5dc9c4d8e7dcc629d7.md @@ -0,0 +1,53 @@ +--- +id: 66234a5dc9c4d8e7dcc629d7 +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What potential problem is Brian mentioning? + +## --answers-- + +Changing the logic might cause issues in other parts of the system. + +--- + +The logic modification will definitely improve the system. + +### --feedback-- + +Brian is cautioning about potential issues, not guaranteeing improvements. + +--- + +Other parts of the system do not affect the logic. + +### --feedback-- + +Brian's focus is on the impact of the logic change on other parts, not the other way around. + +--- + +The logic should not be modified at all. + +### --feedback-- + +Brian suggests considering the impact, not avoiding modification entirely. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md new file mode 100644 index 00000000000..fa864381106 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234ab7decaffe8ecb8327d.md @@ -0,0 +1,39 @@ +--- +id: 66234ab7decaffe8ecb8327d +title: Task 54 +challengeType: 22 +dashedName: task-54 +--- + + + +# --description-- + +`To affect` means to have an impact on or influence something. In programming, `affecting` a part of the system means that changes in one area might impact how other areas function. + +For example, `Changing the database structure could affect the application's performance` indicates that modifications might influence the performance. + +# --fillInTheBlank-- + +## --sentence-- + +`Ok, so if I make changes here, do you think it could _ other _?` + +## --blanks-- + +`affect` + +### --feedback-- + +In this context, it refers to the potential impact of Sophie's changes on other parts of the system. + +--- + +`functionalities` + +### --feedback-- + +They are the various operations or features of the system that might be impacted by the changes. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md new file mode 100644 index 00000000000..0b3de96bdb0 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b28ae877fea2d15571e.md @@ -0,0 +1,53 @@ +--- +id: 66234b28ae877fea2d15571e +title: Task 55 +challengeType: 19 +dashedName: task-55 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie concerned about regarding her changes to the system? + +## --answers-- + +She worries the changes won't be significant enough. + +### --feedback-- + +Sophie's concern is about the impact of the changes, not their significance. + +--- + +She is unsure if the changes will improve the system. + +### --feedback-- + +Sophie's focus is on the potential negative impact, not necessarily on improvement. + +--- + +She fears the changes might break the system entirely. + +### --feedback-- + +Sophie's concern is about the effect on other functionalities, not breaking the system entirely. + +--- + +She is concerned that her changes might impact other functionalities. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md new file mode 100644 index 00000000000..fd088e1a25e --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234b711dab68eafd8bf850.md @@ -0,0 +1,57 @@ +--- +id: 66234b711dab68eafd8bf850 +title: Task 56 +challengeType: 22 +dashedName: task-56 +--- + + + +# --description-- + +`To isolate` in this context means to separate or single out something in order to understand or deal with it more effectively. For example, `Isolating a variable in an experiment helps to understand its effects.` + +The `root cause` is the fundamental reason for the occurrence of a problem. Identifying the `root cause` in programming means finding the main reason why an error or issue is happening. For instance, `Identifying the root cause of a system failure can prevent future issues.` + +`Behavior` in software refers to how a system, program, or function operates or responds under certain conditions. + +# --fillInTheBlank-- + +## --sentence-- + +`Maybe. If you _ any unexpected _ after your changes, try to _ the issue. It will help us get to the _ cause.` + +## --blanks-- + +`encounter` + +### --feedback-- + +It means to come across, typically referring to unexpected issues or challenges. + +--- + +`behavior` + +### --feedback-- + +It refers to how the system operates or responds, especially after changes are made. + +--- + +`isolate` + +### --feedback-- + +It means to separate an issue to understand it better. + +--- + +`root` + +### --feedback-- + +It refers to the underlying or main reason for a problem. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md new file mode 100644 index 00000000000..2cfa1c41192 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234f32cadc5ff3e109d696.md @@ -0,0 +1,53 @@ +--- +id: 66234f32cadc5ff3e109d696 +title: Task 57 +challengeType: 19 +dashedName: task-57 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +How certain is Brian about the consequences of Sophie's changes, and what does he suggest? + +## --answers-- + +He is very certain the changes will cause problems. + +### --feedback-- + +Brian expresses uncertainty, not certainty, about potential problems. + +--- + +He is unsure but suggests isolating the issue to find the root cause. + +--- + +He believes there will be no issues with Sophie's changes. + +### --feedback-- + +Brian's use of `maybe` and his advice to isolate issues indicate he acknowledges the possibility of problems. + +--- + +He is indifferent to the potential outcomes of the changes. + +### --feedback-- + +Brian's suggestion to isolate the issue shows he is considerate and methodical, not indifferent. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md new file mode 100644 index 00000000000..42d9351ddb8 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66234fc78749f6f521af89f3.md @@ -0,0 +1,45 @@ +--- +id: 66234fc78749f6f521af89f3 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +The `source` of a problem refers to the origin or cause of the issue. In programming, finding the `source` of a problem is key to fixing it. For instance, `The source of the error was a missing semicolon.` + +# --fillInTheBlank-- + +## --sentence-- + +`I see. So, if I _ anything unusual, I should _ to find the _ of the problem, right?` + +## --blanks-- + +`notice` + +### --feedback-- + +It refers to becoming aware of something unusual or unexpected in the system. + +--- + +`try` + +### --feedback-- + +It indicates making an effort or attempt to do something, in this case, to find the source of the problem. + +--- + +`source` + +### --feedback-- + +It refers to the origin or cause of the problem Sophie needs to identify. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md new file mode 100644 index 00000000000..73625912527 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662350dc387cd3f81989ba51.md @@ -0,0 +1,53 @@ +--- +id: 662350dc387cd3f81989ba51 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Sophie's plan if she encounters an unusual issue in her work? + +## --answers-- + +To immediately report the issue without investigating + +### --feedback-- + +Sophie indicates a willingness to try to find the source of the problem herself, not just to report it. + +--- + +To ignore the issue as it might not be significant + +### --feedback-- + +Sophie expresses an intention to find the source of the problem, not to ignore it. + +--- + +To find the source of the problem herself + +--- + +To wait for someone else to notice the issue + +### --feedback-- + +Sophie plans to take action herself upon noticing the issue, not wait for others. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md new file mode 100644 index 00000000000..5f6531c2bf3 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235136fd7a23f8f802b279.md @@ -0,0 +1,53 @@ +--- +id: 66235136fd7a23f8f802b279 +title: Task 60 +challengeType: 22 +dashedName: task-60 +--- + + + +# --description-- + +`To break` in a software context means to cause something to fail or stop working correctly. For example, `Incorrect code can break the application` means it can cause the application to malfunction. + +# --fillInTheBlank-- + +## --sentence-- + +`Right. When you start _, write test _ for the _ function. It'll ensure that your changes don't _ anything else.` + +## --blanks-- + +`testing` + +### --feedback-- + +It refers to the process of evaluating the software to ensure it functions as expected. + +--- + +`cases` + +### --feedback-- + +They are specific scenarios used to test how the software operates under various conditions. + +--- + +`modified` + +### --feedback-- + +It refers to the changes made to the function. + +--- + +`break` + +### --feedback-- + +It means causing a part of the system to fail or stop working correctly. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md new file mode 100644 index 00000000000..004c7ed1f16 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662351c28974b0faad8607be.md @@ -0,0 +1,53 @@ +--- +id: 662351c28974b0faad8607be +title: Task 61 +challengeType: 19 +dashedName: task-61 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What is Brian advising Sophie to do when testing her code changes? + +## --answers-- + +To avoid testing as it might be too time-consuming + +### --feedback-- + +Brian emphasizes the importance of testing, not avoiding it. + +--- + +To write test cases for the modified function to ensure it doesn't cause problems + +--- + +To only test the original parts of the code + +### --feedback-- + +Brian's advice is specifically about testing the modified function. + +--- + +To manually check each part of the system + +### --feedback-- + +Brian suggests writing test cases, not necessarily manually checking each part. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md new file mode 100644 index 00000000000..e10f6ff3537 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235f35bef6ef183f7a06ff.md @@ -0,0 +1,45 @@ +--- +id: 66235f35bef6ef183f7a06ff +title: Task 62 +challengeType: 22 +dashedName: task-62 +--- + + + +# --description-- + +`Stability` in a system or software context means the state of being steady and not prone to crashes or errors. For example, `We work to improve the stability of our software` means efforts are made to make the software more reliable and less likely to fail. + +# --fillInTheBlank-- + +## --sentence-- + +`Will it help _ the _ system _?` + +## --blanks-- + +`ensure` + +### --feedback-- + +It means making certain that the system remains stable. + +--- + +`overall` + +### --feedback-- + +It refers to the entire system as a whole, not just parts of it. + +--- + +`stability` + +### --feedback-- + +It is the quality of being reliable and not prone to errors or crashes. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md new file mode 100644 index 00000000000..e6d9bbf8d15 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66235ffab373a11abea1a42c.md @@ -0,0 +1,53 @@ +--- +id: 66235ffab373a11abea1a42c +title: Task 63 +challengeType: 19 +dashedName: task-63 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Sophie want to know about the action she is considering? + +## --answers-- + +If it will make the system run faster + +### --feedback-- + +Her question is about stability, not specifically about speed. + +--- + +If it will decrease the system's functionality + +### --feedback-- + +Sophie is concerned about maintaining stability, not decreasing functionality. + +--- + +If it will lead to more errors in the system + +### --feedback-- + +Sophie's concern is whether the action will maintain stability, not cause more errors. + +--- + +If it will help maintain the system's overall stability + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md new file mode 100644 index 00000000000..2fc886bef2d --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/662360667ceb071bd3061489.md @@ -0,0 +1,54 @@ +--- +id: 662360667ceb071bd3061489 +title: Task 64 +challengeType: 22 +dashedName: task-64 +--- + + + +# --description-- + +A `safety net` is a term used to describe something that provides a measure of protection or security. In programming, referring to testing as a `safety net` means it helps catch and prevent errors before they become major issues, much like a net that catches someone who falls. + + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Testing is a _ net. And don't forget, if you're _ unsure about anything, don't _ to ask for a _ opinion. I'm here to help.` + +## --blanks-- + +`safety` + +### --feedback-- + +It refers to protection or security against negative outcomes or failures. + +--- + +`still` + +### --feedback-- + +It indicates a continuation of the state of being unsure. + +--- + +`hesitate` + +### --feedback-- + +It means to pause or delay due to uncertainty. + +--- + +`second` + +### --feedback-- + +It means advice or views from another person. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md new file mode 100644 index 00000000000..ea4e9a66215 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/66236122aafa541e002b61e5.md @@ -0,0 +1,53 @@ +--- +id: 66236122aafa541e002b61e5 +title: Task 65 +challengeType: 19 +dashedName: task-65 +--- + + + +# --description-- + +Brian uses a metaphor of a `safety net` to illustrate how something can serve as a protective measure. + +# --question-- + +## --text-- + +What does Brian refer to as a `safety net`? + +## --answers-- + +The process of getting a second opinion + +### --feedback-- + +While seeking a second opinion is advisable, it's not what Brian refers to as a `safety net`. + +--- + +The act of hesitating before making changes + +### --feedback-- + +Hesitation is not the `safety net` Brian mentions; he encourages decisive action. + +--- + +The practice of conducting thorough testing + +--- + +The process of continually updating the software + +### --feedback-- + +Continuous updates are important, but it's the testing process Brian describes as a `safety net`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md new file mode 100644 index 00000000000..62e3dae0b83 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/6623619449c2dc1f62f15ff2.md @@ -0,0 +1,37 @@ +--- +id: 6623619449c2dc1f62f15ff2 +title: Task 66 +challengeType: 22 +dashedName: task-66 +--- + + + +# --description-- + +`To reach out` means to contact someone for assistance or information. In a workplace context, it's about seeking help or advice from colleagues. + +# --fillInTheBlank-- + +## --sentence-- + +`I really _ it. I'll _ out to you if I need more help. Thanks, Brian.` + +## --blanks-- + +`appreciate` + +### --feedback-- + +It means Sophie is thankful for Brian's offer of help. + +--- + +`reach` + +### --feedback-- + +It means Sophie will contact Brian if she requires further assistance. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md deleted file mode 100644 index 2992f043684..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-offer-technical-support-and-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd641cf05ad9560af2fbf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md deleted file mode 100644 index 327e41d6281..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-provide-explanations-when-helping-others/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6e975fb4c9778bd5f3a -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md deleted file mode 100644 index dd7e04c9eb2..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-read-and-understand-code-documentation/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1715102daf9d3d0d3330 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md new file mode 100644 index 00000000000..dc84a118f24 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66250fc0d711192eebfff0e9.md @@ -0,0 +1,14 @@ +--- +id: 66250fc0d711192eebfff0e9 +title: "Dialogue 1: Solving Coding Challenges" +challengeType: 21 +dashedName: dialogue-1-solving-coding-challenges +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md new file mode 100644 index 00000000000..3393b258285 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662510c947e06930d2dbab21.md @@ -0,0 +1,47 @@ +--- +id: 662510c947e06930d2dbab21 +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +A `challenge` refers to a task or problem that requires skill and effort to solve. In coding, a `coding challenge` is a problem or task that needs coding skills to be completed. + +`Fresh` in this context means new or different. Asking for a `fresh perspective` means seeking a new or different viewpoint on a problem or task. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey, Brian! I'm _ on this coding _, and I could use a _ perspective. Mind taking a look?` + +## --blanks-- + +`working` + +### --feedback-- + +It indicates that Sophie is actively engaged in solving the coding problem. + +--- + +`challenge` + +### --feedback-- + +It refers to the coding task Sophie is trying to solve. + +--- + +`fresh` + +### --feedback-- + +It means Sophie is looking for a new or different viewpoint to help with her coding task. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md new file mode 100644 index 00000000000..77ceff0a853 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251132384f80331831867a.md @@ -0,0 +1,53 @@ +--- +id: 66251132384f80331831867a +title: Task 2 +challengeType: 19 +dashedName: task-2 +--- + + + +# --description-- + +This task assesses your understanding of Sophie's request to Brian. Recognizing requests for assistance or collaboration is crucial in team dynamics and project success. + +# --question-- + +## --text-- + +What is Sophie asking Brian to do? + +## --answers-- + +She is asking Brian to solve the coding challenge for her. + +### --feedback-- + +Sophie is seeking Brian's perspective, not asking him to solve it entirely. + +--- + +She wants Brian to ignore her coding work. + +### --feedback-- + +This option is the opposite of her request; she's asking for input, not for it to be ignored. + +--- + +She is inviting Brian to collaborate on a different project. + +### --feedback-- + +Sophie's request is specific to the coding challenge she's currently working on, not a different project. + +--- + +She's requesting Brian to give a fresh perspective on her coding challenge. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md new file mode 100644 index 00000000000..d74a9775c94 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662511992b96e5344c2ff040.md @@ -0,0 +1,37 @@ +--- +id: 662511992b96e5344c2ff040 +title: Task 3 +challengeType: 22 +dashedName: task-3 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course! I'm happy to help. What _ to be the _?` + +## --blanks-- + +`seems` + +### --feedback-- + +In this context, it is used by Brian to inquire about the apparent problem or challenge Sophie is facing. + +--- + +`issue` + +### --feedback-- + +It refers to the specific problem or challenge Sophie has encountered in her coding task. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md new file mode 100644 index 00000000000..609618a16db --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625123129742735c5231dbe.md @@ -0,0 +1,53 @@ +--- +id: 6625123129742735c5231dbe +title: Task 4 +challengeType: 19 +dashedName: task-4 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +He wants to know why Sophie is working on the coding challenge. + +### --feedback-- + +Brian's question is about the nature of the problem Sophie is facing, not the reason she's working on the challenge. + +--- + +He is asking Sophie for the solution to the coding challenge. + +### --feedback-- + +Brian is offering help, not asking for the solution. He wants to understand the problem first. + +--- + +He is inquiring about the specific problem or issue Sophie is encountering. + +--- + +He is questioning Sophie's ability to work on the coding challenge. + +### --feedback-- + +Brian's tone is supportive, not questioning Sophie's ability. He's focused on understanding the issue at hand. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md new file mode 100644 index 00000000000..efaa884fa79 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251295a284563711fba9ba.md @@ -0,0 +1,47 @@ +--- +id: 66251295a284563711fba9ba +title: Task 5 +challengeType: 22 +dashedName: task-5 +--- + + + +# --description-- + +`Missing` implies that something is absent or lacking. In coding, feeling like you're `missing something` can mean there's a gap in your understanding or a missing piece in the code. + +To `tackle` a challenge means to confront or take on a difficult task. It's like saying, `I tackled the difficult problem,` which means you worked on solving it, even if it was hard. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I'm trying to _ this function, but I feel like I'm _ something. Have you ever _ a similar optimization challenge?` + +## --blanks-- + +`optimize` + +### --feedback-- + +It refers to Sophie's effort to improve the function's efficiency or performance. + +--- + +`missing` + +### --feedback-- + +It indicates that Sophie feels there is a gap or something lacking in her approach. + +--- + +`tackled` + +### --feedback-- + +It is used to ask if Brian has previously confronted or addressed a similar challenging situation. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md new file mode 100644 index 00000000000..86998205c35 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625136b87a56a3913122eb5.md @@ -0,0 +1,53 @@ +--- +id: 6625136b87a56a3913122eb5 +title: Task 6 +challengeType: 19 +dashedName: task-6 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What has Sophie tried to do, and what is she asking Brian? + +## --answers-- + +She tried solving a bug and is asking for a code review. + +### --feedback-- + +This choice is incorrect. Sophie is working on optimization, not bug solving, and she's asking if Brian has experience with similar challenges. + +--- + +She's optimizing a function and wants to know if Brian has faced a similar challenge. + +--- + +She gave up on the function and is seeking Brian's help to start over. + +### --feedback-- + +Sophie hasn't given up; she's actively working on optimization and inquiring about Brian's experience. + +--- + +She completed the function optimization and is asking for Brian's approval. + +### --feedback-- + +Sophie indicates she's still working on optimization and is missing something, not seeking approval for a completed task. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md new file mode 100644 index 00000000000..f0cd27daf12 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662513cfc37d6c3a297b7b94.md @@ -0,0 +1,55 @@ +--- +id: 662513cfc37d6c3a297b7b94 +title: Task 7 +challengeType: 22 +dashedName: task-7 +--- + + + +# --description-- + +To `break down` means to divide something into smaller, more manageable parts. Like, `Break down the project into steps,` suggests dividing the project into simpler stages. + +`Manageable` means something that is easier to handle or deal with. For example, `Making the workload manageable,` implies adjusting it to a more controllable level. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely. Optimization can be _, I'd suggest that you _ down the function into _ parts. It might make the optimization more _.` + +## --blanks-- + +`tricky` + +### --feedback-- + +It describes the complexity or difficulty of optimizing the function. + +--- + +`break` + +### --feedback-- + +It suggests dividing the function into simpler parts to work on. + +--- + +`smaller` + +### --feedback-- + +It implies more focused and less overwhelming segments of the function. + +--- + +`manageable` + +### --feedback-- + +It indicates making the task easier to handle or control. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md new file mode 100644 index 00000000000..851e606dfc7 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514383f43d53b748dff42.md @@ -0,0 +1,53 @@ +--- +id: 662514383f43d53b748dff42 +title: Task 8 +challengeType: 19 +dashedName: task-8 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Brian suggest to Sophie, and why? + +## --answers-- + +He suggests outsourcing the optimization due to its complexity. + +### --feedback-- + +This option is incorrect. Brian's advice is about breaking down the function, not outsourcing. + +--- + +He recommends focusing on other functions instead of the tricky one. + +### --feedback-- + +Brian's suggestion is to work on the current function in a more manageable way, not to shift focus to other functions. + +--- + +He advises against optimizing the function as it's too difficult. + +### --feedback-- + +Rather than advising against it, Brian suggests a strategy to make optimization more manageable. + +--- + +He suggests breaking down the function into smaller parts to make optimization more manageable. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md new file mode 100644 index 00000000000..db8f7e9a2fd --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662514cc5f752c3cfa8f790a.md @@ -0,0 +1,48 @@ +--- +id: 662514cc5f752c3cfa8f790a +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + +# --description-- + +`Time complexity` is a term from computer science. It describes how long an algorithm (a set of instructions) takes to complete, based on the size of the input. A simple example is washing dishes: washing one dish is quick, but washing many dishes takes longer. This is like time complexity in programming. + +# --question-- + +## --text-- + +What is a simple explanation of `time complexity`? + +## --answers-- + +It's how long it takes to wash dishes, depending on how many there are. + +--- + +It's about solving math problems quickly. + +### --feedback-- + +`Time complexity` is not specifically about solving math problems. + +--- + +It's the complexity of a clock's mechanism. + +### --feedback-- + +`Time complexity` is related to algorithms, not clock mechanisms. + +--- + +It's the time it takes to write a program. + +### --feedback-- + +`Time complexity` refers to the execution time of an algorithm, not the time to write a program. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md new file mode 100644 index 00000000000..fc649ef092b --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662515989f56983f1f2cb10d.md @@ -0,0 +1,29 @@ +--- +id: 662515989f56983f1f2cb10d +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time _ issues in a similar context?` + +## --blanks-- + +`complexity` + +### --feedback-- + +This word refers to the level of complication or intricacy of the algorithm's time performance. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md new file mode 100644 index 00000000000..a206da265b1 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625161c74f42b40918e3d40.md @@ -0,0 +1,31 @@ +--- +id: 6625161c74f42b40918e3d40 +title: Task 11 +challengeType: 22 +dashedName: task-11 +--- + + + +# --description-- + +`To deal with` something means to handle or manage it, especially a problem or challenge. For example, `dealing with a difficult homework question` means trying to find the answer. + +`dealt` is the past participle of `deal`. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever _ with time complexity issues in a similar context?` + +## --blanks-- + +`dealt` + +### --feedback-- + +It means handled or managed, often in the context of a problem or challenge. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md new file mode 100644 index 00000000000..bb64e289ac9 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516a0393cb741cf52e4ab.md @@ -0,0 +1,48 @@ +--- +id: 662516a0393cb741cf52e4ab +title: Task 12 +challengeType: 19 +dashedName: task-12 +--- + +# --description-- + +Let’s have a quick review: `Have you ever` is a phrase used to ask if someone has experienced something in the past. It's like asking about past events or actions. For example, `Have you ever been to Paris?` asks if the person has visited Paris at any point in their life. + +# --question-- + +## --text-- + +What does `Have you ever` ask about? + +## --answers-- + +Future plans and intentions + +### --feedback-- + +It asks about past experiences, not future plans. + +--- + +General knowledge or facts + +### --feedback-- + +It's more about personal experiences than general knowledge. + +--- + +Past experiences or actions + +--- + +Current feelings or opinions + +### --feedback-- + +It's about past events, not current feelings or opinions. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md new file mode 100644 index 00000000000..93a3e043c11 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662516f67e575142bcd515dc.md @@ -0,0 +1,29 @@ +--- +id: 662516f67e575142bcd515dc +title: Task 13 +challengeType: 22 +dashedName: task-13 +--- + + + +# --description-- + +`In a similar context` means in a situation that is like the one being discussed. It's about comparing something with a similar scenario. For example, `In a similar context, I also choose to walk instead of drive` compares two scenarios where the person prefers walking. + +# --fillInTheBlank-- + +## --sentence-- + +`Good point. I'll try that. Also, have you ever dealt with time complexity issues in a _ context?` + +## --blanks-- + +`similar` + +### --feedback-- + +It indicates a situation or scenario that is like the one currently being discussed. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md new file mode 100644 index 00000000000..4e1b4bc90ff --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625172e28818f43a04d7915.md @@ -0,0 +1,53 @@ +--- +id: 6625172e28818f43a04d7915 +title: Task 14 +challengeType: 19 +dashedName: task-14 +--- + + + +# --description-- + +This task checks understanding of the entire structure of Sophie's sentence. + +# --question-- + +## --text-- + +What is Sophie asking about in her sentence? + +## --answers-- + +If Brian likes dealing with complex issues + +### --feedback-- + +Sophie's question is specifically about past experiences with a technical issue, not general preferences. + +--- + +If Brian has experience with similar time complexity issues + +--- + +If Brian can teach her about time complexity right now + +### --feedback-- + +She is asking about past experience, not seeking immediate teaching. + +--- + +Brian's opinion on the difficulty of time complexity issues + +### --feedback-- + +She's asking about Brian's experience, not his opinion on the difficulty. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md new file mode 100644 index 00000000000..ebc66196077 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662517bb095bf344730c6e7a.md @@ -0,0 +1,49 @@ +--- +id: 662517bb095bf344730c6e7a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`Loops` in programming refer to instructions that repeat until a certain condition is met. They are used to run the same code multiple times. + +`When` is a word used to refer to the time at which something happens. It's often used in questions about timing or conditions. + +`To approach` means to deal with something or to start to consider a problem in a particular way. In problem-solving, it's about the method or strategy used to tackle a challenge. + +# --fillInTheBlank-- + +## --sentence-- + +`_ and conditionals… Thanks! By the way, _ you see a logic challenge, how do you usually _ it?` + +## --blanks-- + +`Loops` + +### --feedback-- + +This word is a programming term for repeating instructions. + +--- + +`when` + +### --feedback-- + +This word is used for asking about the timing of an event or action. + +--- + +`approach` + +### --feedback-- + +This word means the way someone deals with or considers a problem. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md new file mode 100644 index 00000000000..3c018edbd2e --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625182c819dcd464d8a772f.md @@ -0,0 +1,53 @@ +--- +id: 6625182c819dcd464d8a772f +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know? + +## --answers-- + +The best time to work on logic challenges + +### --feedback-- + +Her question is more about methods, not about timing. + +--- + +Different ways to solve logic challenges + +### --feedback-- + +Sophie is asking about a specific approach, not multiple ways. + +--- + +How to avoid logic challenges in programming + +### --feedback-- + +Her question implies interest in tackling challenges, not avoiding them. + +--- + +The usual method for approaching logic challenges + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md new file mode 100644 index 00000000000..4f9d6c00c44 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519204fa706489bf194d7.md @@ -0,0 +1,45 @@ +--- +id: 662519204fa706489bf194d7 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +A `colleague` is someone you work with, especially in a professional or formal setting. `Colleagues` often collaborate to solve problems. For example, `My colleague helped me fix the bug in the code`. + +# --fillInTheBlank-- + +## --sentence-- + +`Well, I break it down step by step. If I get _ on a _ part, I ask for help from _. Have you ever collaborated with someone to solve coding problems?` + +## --blanks-- + +`stuck` + +### --feedback-- + +This word refers to being unable to progress in a task or problem. + +--- + +`specific` + +### --feedback-- + +This word describes a particular part or aspect of a larger problem. + +--- + +`colleagues` + +### --feedback-- + +This word refers to people you work with, often in a professional setting. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md new file mode 100644 index 00000000000..f4d2d8acb00 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/662519d6e045404a8825ec64.md @@ -0,0 +1,53 @@ +--- +id: 662519d6e045404a8825ec64 +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +Brian shares his method for handling coding challenges. + +# --question-- + +## --text-- + +What does Brian do when facing a difficult coding problem? + +## --answers-- + +He always solves it alone without help. + +### --feedback-- + +Brian mentions asking for help, so he doesn't always solve problems alone. + +--- + +He breaks down the problem and asks colleagues for help if needed. + +--- + +He immediately hands the problem over to someone else. + +### --feedback-- + +Brian's approach involves breaking down the problem himself, not just handing it over. + +--- + +He avoids difficult coding problems. + +### --feedback-- + +His approach is about actively tackling problems, not avoiding them. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md new file mode 100644 index 00000000000..d5961561e58 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251a827166c04c250f8858.md @@ -0,0 +1,53 @@ +--- +id: 66251a827166c04c250f8858 +title: Task 19 +challengeType: 19 +dashedName: task-19 +--- + + + +# --description-- + +Brian is curious about Sophie's experience in collaborative problem-solving in programming. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers working alone on coding problems + +### --feedback-- + +Brian is asking about collaboration, not her preference for working alone. + +--- + +Her experience in using specific coding tools + +### --feedback-- + +The question is about collaboration, not about tools. + +--- + +If she has collaborated with others to solve coding problems + +--- + +Whether she is an expert in solving coding problems + +### --feedback-- + +His question is about collaboration, not about her expertise level. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md new file mode 100644 index 00000000000..213b7e277ef --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b2d50a4454dd7eb4591.md @@ -0,0 +1,65 @@ +--- +id: 66251b2d50a4454dd7eb4591 +title: Task 20 +challengeType: 22 +dashedName: task-20 +--- + + + +# --description-- + +`Preferred` means liked or desired more than other things. For instance, a `preferred choice` is something you would choose over other options. + +`Optimization` in programming refers to making a code or system as effective and efficient as possible. + +`Diving deep` means to explore or investigate a subject or topic in detail. + +# --fillInTheBlank-- + +## --sentence-- + +`I _ done that much, but it _ like a great idea. I'll keep that in mind. Do you have any _ resources for _ deep into _ techniques?` + +## --blanks-- + +`haven't` + +### --feedback-- + +This word is used to indicate the absence of an experience or action. + +--- + +`sounds` + +### --feedback-- + +This word suggests that something seems good based on what was heard. + +--- + +`preferred` + +### --feedback-- + +This word refers to resources that are more liked or desired. + +--- + +`diving` + +### --feedback-- + +This word refers to exploring or investigating a subject or topic in detail. + +--- + +`optimization` + +### --feedback-- + +This word refers to the process of making something as effective and efficient as possible. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md new file mode 100644 index 00000000000..92386c998e4 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251b9ca21e8a4f232af061.md @@ -0,0 +1,53 @@ +--- +id: 66251b9ca21e8a4f232af061 +title: Task 21 +challengeType: 19 +dashedName: task-21 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie say about her experience collaborating with others to solve problems? + +## --answers-- + +She hasn't done much of it but is open to the idea. + +--- + +She has extensive experience collaborating. + +### --feedback-- + +Sophie indicates that she hasn't done much collaboration, not that she has extensive experience. + +--- + +She prefers to work alone and avoid collaboration. + +### --feedback-- + +Sophie expresses openness to the idea of collaboration, not a preference for working alone. + +--- + +She finds collaboration unnecessary. + +### --feedback-- + +Sophie seems to like the idea of collaboration, not finding it unnecessary. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md new file mode 100644 index 00000000000..562acfd6a76 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c216cffc3508cdcc4d9.md @@ -0,0 +1,53 @@ +--- +id: 66251c216cffc3508cdcc4d9 +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie want to know from Brian? + +## --answers-- + +His opinion on the importance of optimization + +### --feedback-- + +Sophie is specifically asking for resources, not just his opinion on optimization. + +--- + +Whether he thinks collaboration is necessary + +### --feedback-- + +Her question is about resources for learning optimization, not about collaboration. + +--- + +If he can personally teach her optimization techniques + +### --feedback-- + +She asks for resources, not for personal teaching. + +--- + +His preferred resources for learning about optimization techniques + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md new file mode 100644 index 00000000000..22e5be1aad9 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251c6da2ea2b517704971a.md @@ -0,0 +1,53 @@ +--- +id: 66251c6da2ea2b517704971a +title: Task 23 +challengeType: 22 +dashedName: task-23 +--- + + + +# --description-- + +`Challenges` in this context refers to tasks or problems that require a solution, often used in relation to coding or programming tasks. + +# --fillInTheBlank-- + +## --sentence-- + +`_! There are some great _ and tutorials online. I can share a _ links with you. Have you ever explored online resources for coding _?` + +## --blanks-- + +`Definitely` + +### --feedback-- + +This word indicates strong agreement or confirmation. + +--- + +`articles` + +### --feedback-- + +This word refers to written pieces about specific topics. + +--- + +`few` + +### --feedback-- + +This word signifies a small number, more than one but not many. + +--- + +`challenges` + +### --feedback-- + +This word here refers to tasks or problems in coding that need solving. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md new file mode 100644 index 00000000000..6d5f582c8d1 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251cba9059ca525eac8eb7.md @@ -0,0 +1,53 @@ +--- +id: 66251cba9059ca525eac8eb7 +title: Task 24 +challengeType: 19 +dashedName: task-24 +--- + + + +# --description-- + +Brian mentions his preference for certain types of learning resources. + +# --question-- + +## --text-- + +What are Brian's favorite resources for coding? + +## --answers-- + +Online articles and tutorials + +--- + +Books and offline classes + +### --feedback-- + +Brian mentions preferring online resources, not books or offline classes. + +--- + +In-person coding workshops + +### --feedback-- + +He talks about online resources, not in-person workshops. + +--- + +Private tutoring sessions + +### --feedback-- + +Brian's preference is for articles and tutorials online, not private tutoring. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md new file mode 100644 index 00000000000..86e8f7f8fc9 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d38d259e453c729ed73.md @@ -0,0 +1,53 @@ +--- +id: 66251d38d259e453c729ed73 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Brian is curious about something. + +# --question-- + +## --text-- + +What does Brian want to know from Sophie? + +## --answers-- + +If she prefers in-person training over online resources + +### --feedback-- + +Brian's question is specifically about her use of online resources, not a comparison with in-person training. + +--- + +If she has used online resources for coding challenges + +--- + +Whether she needs help with coding challenges + +### --feedback-- + +His question is about her past use of resources, not about her current need for help. + +--- + +If she can recommend any resources to him + +### --feedback-- + +Brian's inquiry is about Sophie's experience, not about getting recommendations from her. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md new file mode 100644 index 00000000000..381f343c5da --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251d83ab861554d81c9001.md @@ -0,0 +1,57 @@ +--- +id: 66251d83ab861554d81c9001 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +`Extensively` means doing something in a thorough or comprehensive manner. For example, `studying extensively` means studying in great detail. + +`Extensive` means wide-ranging or thorough. `Extensively` is doing something in an `extensive` way. + +`Helpful` means providing assistance or benefit. For example, `Your advice has been very helpful` means the advice has been beneficial. + +# --fillInTheBlank-- + +## --sentence-- + +`Not _. I'd _ those links. Thanks for your guidance. It's _ really _.` + +## --blanks-- + +`extensively` + +### --feedback-- + +This word means doing something thoroughly or in a detailed manner. + +--- + +`appreciate` + +### --feedback-- + +This word means being thankful or recognizing the value of something. + +--- + +`been` + +### --feedback-- + +This word is used to talk about something that has happened in the past. + +--- + +`helpful` + +### --feedback-- + +This word means providing assistance or being beneficial. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md new file mode 100644 index 00000000000..392a9d88756 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251dd2d2582a55cc4ca988.md @@ -0,0 +1,54 @@ +--- +id: 66251dd2d2582a55cc4ca988 +title: Task 27 +challengeType: 19 +dashedName: task-27 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +What does Sophie mean when she says `I'd appreciate those links`? + +## --answers-- + +She doesn't need the links. + +### --feedback-- + +Sophie's statement indicates a positive response, showing that she values the links. + +--- + +She will only use the links if necessary. + +### --feedback-- + +Her response shows more enthusiasm than just using the links if necessary. + +--- + +She is thankful and finds the links valuable. + +--- + +She is unsure about the usefulness of the links. + +### --feedback-- + +Sophie expresses appreciation, suggesting she finds the links useful. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md new file mode 100644 index 00000000000..3dabe50b8b5 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251e6701f1ac574db171fe.md @@ -0,0 +1,39 @@ +--- +id: 66251e6701f1ac574db171fe +title: Task 28 +challengeType: 22 +dashedName: task-28 +--- + + + +# --description-- + +`Each other` is a phrase used when referring to a reciprocal relationship or action between two or more people. For example, `helping each other` means people are assisting one another. + +`Stronger` is the comparative form of `strong`. It means having more strength or being more forceful than before. For instance, `This team is stronger than last year` implies the team has improved in strength. + +# --fillInTheBlank-- + +## --sentence-- + +`No problem. We're a team. Supporting _ other is what makes us _.` + +## --blanks-- + +`each` + +### --feedback-- + +It refers to every one of two or more people, indicating that they are doing something to or for one another. + +--- + +`stronger` + +### --feedback-- + +This word is used to describe an increase in strength or improvement over a previous state. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md new file mode 100644 index 00000000000..8bef28f5ebb --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/66251f12b5f14c58d410cd98.md @@ -0,0 +1,53 @@ +--- +id: 66251f12b5f14c58d410cd98 +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +Brian shares his perspective. + +# --question-- + +## --text-- + +What is Brian saying about the team and supporting each other? + +## --answers-- + +Working individually makes the team stronger. + +### --feedback-- + +Brian's emphasis is on mutual support, not on working individually. + +--- + +Supporting each other enhances the team's strength. + +--- + +The team doesn't need to support each other to be strong. + +### --feedback-- + +Brian believes that supporting each other is crucial for the team's strength. + +--- + +The team is already strong and doesn't need further support. + +### --feedback-- + +Brian suggests that the act of supporting each other is what makes the team stronger. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md new file mode 100644 index 00000000000..d203a512122 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ceb55c430866094b40b9.md @@ -0,0 +1,14 @@ +--- +id: 6625ceb55c430866094b40b9 +title: "Dialogue 2: Learning a New Technology" +challengeType: 21 +dashedName: dialogue-2-learning-a-new-technology +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md new file mode 100644 index 00000000000..5f54856a88e --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cee408515366fddbf402.md @@ -0,0 +1,45 @@ +--- +id: 6625cee408515366fddbf402 +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Ugh! I'm really _ to understand how to use this _, but I'm a bit lost. _ if I ask you for some guidance?` + +## --blanks-- + +`trying` + +### --feedback-- + +This word indicates making an effort or attempt to do something. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of pre-written code for common tasks. + +--- + +`Mind` + +### --feedback-- + +This word is used to ask for permission or check if someone is okay with something. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md new file mode 100644 index 00000000000..cbe5164a998 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cf67c35a69684aafd265.md @@ -0,0 +1,53 @@ +--- +id: 6625cf67c35a69684aafd265 +title: Task 31 +challengeType: 19 +dashedName: task-31 +--- + + + +# --description-- + +Tom is expressing difficulty with a programming task. + +# --question-- + +## --text-- + +What does Tom want to know? + +## --answers-- + +If he can ask for some guidance on using the library + +--- + +Whether he should give up on using the library + +### --feedback-- + +Tom's intent is to seek help, not to give up on using the library. + +--- + +If the library is too difficult for others as well + +### --feedback-- + +Tom is asking for personal assistance, not about others' experiences with the library. + +--- + +How to solve a different problem without help + +### --feedback-- + +He specifically asks for guidance on using a particular library, not about solving a different problem. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md new file mode 100644 index 00000000000..a8226a448ab --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625cff7d0c95169e5b8fc7d.md @@ -0,0 +1,53 @@ +--- +id: 6625cff7d0c95169e5b8fc7d +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +In English, it's common to end questions with prepositions like `with`. For example, `What are you working with?` is asking about the subject someone is working on at that moment. + +# --question-- + +## --text-- + +What does Sarah want to know? + +## --answers-- + +What kind of help is needed + +### --feedback-- + +The question is more about identifying the specific problem, not the type of help. + +--- + +The specific problem or issue someone is facing + +--- + +Why someone is causing trouble + +### --feedback-- + +This question is about what someone is struggling with, not why they are causing trouble. + +--- + +What time someone will finish their work + +### --feedback-- + +The question focuses on identifying a problem, not on the time of completion. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md new file mode 100644 index 00000000000..d298c21b04c --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d0e9ef6f966c3e2d6164.md @@ -0,0 +1,55 @@ +--- +id: 6625d0e9ef6f966c3e2d6164 +title: Task 33 +challengeType: 22 +dashedName: task-33 +--- + + + +# --description-- + +The `basics` refer to fundamental or elementary aspects of a subject. For example, `learning the basics of cooking` means understanding simple recipes and techniques. + +A `tech stack` is a combination of technologies a company uses to build an application. For instance, a `tech stack` might include a database, server, and front-end framework. + +# --fillInTheBlank-- + +## --sentence-- + +`_, I'm trying to understand the _, like how to set up the _. Have you ever worked with this tech _ before?` + +## --blanks-- + +`Well` + +### --feedback-- + +This word is used to introduce a thought or response. + +--- + +`basics` + +### --feedback-- + +This word refers to fundamental aspects or elementary principles of a subject. + +--- + +`environment` + +### --feedback-- + +In programming, this word refers to the setup where software and applications run. + +--- + +`stack` + +### --feedback-- + +This word is part of the term which refers to a combination of technologies used in development. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md new file mode 100644 index 00000000000..87153b19831 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d3af386a1a72d220e20d.md @@ -0,0 +1,53 @@ +--- +id: 6625d3af386a1a72d220e20d +title: Task 34 +challengeType: 19 +dashedName: task-34 +--- + + + +# --description-- + +Tom expresses his current focus in learning. + +# --question-- + +## --text-- + +What is the main thing Tom is trying to do? + +## --answers-- + +He is trying to find someone to set up the environment for him. + +### --feedback-- + +Tom mentions he is trying to understand how to do it himself, not looking for someone else to do it. + +--- + +He is trying to understand the basics of setting up the environment. + +--- + +He is looking for advanced techniques in technology. + +### --feedback-- + +Tom specifically mentions focusing on the basics, not advanced techniques. + +--- + +He is avoiding working with the tech stack. + +### --feedback-- + +Tom is actively trying to learn, not avoiding the work. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md new file mode 100644 index 00000000000..512b97a6d10 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d42589aa8173e84c6cac.md @@ -0,0 +1,53 @@ +--- +id: 6625d42589aa8173e84c6cac +title: Task 35 +challengeType: 19 +dashedName: task-35 +--- + + + +# --description-- + +Tom's question to Sarah reveals his interest in their experience with a specific set of technologies. + +# --question-- + +## --text-- + +What does Tom want to know from Sarah? + +## --answers-- + +If his colleague can teach him everything about the tech stack + +### --feedback-- + +Tom's question is about past experience, not requesting comprehensive teaching. + +--- + +If Sarah has experience with this particular tech stack + +--- + +If Sarah thinks the tech stack is difficult to use + +### --feedback-- + +Tom asks about experience, not opinions on the difficulty of the tech stack. + +--- + +If Sarah prefers using a different tech stack + +### --feedback-- + +The question is about the colleague's experience with this tech stack, not their preferences. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md new file mode 100644 index 00000000000..c6bd7512e67 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d472aa9f8074dca7199f.md @@ -0,0 +1,37 @@ +--- +id: 6625d472aa9f8074dca7199f +title: Task 36 +challengeType: 22 +dashedName: task-36 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, I have. _ up the environment can be a bit _ initially.` + +## --blanks-- + +`Setting` + +### --feedback-- + +This word refers to the process of preparing or arranging something for use. + +--- + +`tricky` + +### --feedback-- + +This word describes something as challenging or complex to handle. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md new file mode 100644 index 00000000000..199ffc48ace --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d4b5b043f075a2e9425d.md @@ -0,0 +1,53 @@ +--- +id: 6625d4b5b043f075a2e9425d +title: Task 37 +challengeType: 19 +dashedName: task-37 +--- + + + +# --description-- + +Please answer the question below. + +# --question-- + +## --text-- + +According to Sarah, how easy is it to set up a new environment? + +## --answers-- + +Extremely easy and straightforward + +### --feedback-- + +Sarah indicates that it can be somewhat challenging, not extremely easy. + +--- + +Somewhat difficult, especially at the start + +--- + +Usually very complicated and time-consuming + +### --feedback-- + +While tricky, Sarah doesn't imply that it's usually very complicated or extremely time-consuming. + +--- + +Quite tricky initially + +### --feedback-- + +This doesn't align with Sarah saying it's `a bit tricky initially`. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md new file mode 100644 index 00000000000..3e6bb993098 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d54c1eb70c774106c380.md @@ -0,0 +1,57 @@ +--- +id: 6625d54c1eb70c774106c380 +title: Task 38 +challengeType: 22 +dashedName: task-38 +--- + + + +# --description-- + +An `installer` is a program used for installing software. For instance, `Download the installer to get the app on your computer`. + +`Setup` as a noun refers to the arrangement or preparation of something. For example, `Check the setup instructions for your new phone`. `Set up` as a verb means to arrange or prepare, like `Please set up the chairs for the meeting`. + +`Installation` refers to the process of installing something, especially software or equipment. For example, `Follow the steps for the software installation`. + +# --fillInTheBlank-- + +## --sentence-- + +`Let's walk _ the steps together. First, download the _ from the official website. It'll guide you through the _ process. If you have any issues during the _, don't hesitate to reach out.` + +## --blanks-- + +`through` + +### --feedback-- + +This word is used to describe progression within a process or steps. + +--- + +`installer` + +### --feedback-- + +This word refers to a program that installs software. + +--- + +`setup` + +### --feedback-- + +In this context, it's used as a noun to refer to the arrangement or preparation process. + +--- + +`installation` + +### --feedback-- + +This word refers to the process of installing, particularly software. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md new file mode 100644 index 00000000000..ab3a34d14f9 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d5ad00fc51785d7fb311.md @@ -0,0 +1,53 @@ +--- +id: 6625d5ad00fc51785d7fb311 +title: Task 39 +challengeType: 19 +dashedName: task-39 +--- + + + +# --description-- + +Sarah suggests a series of actions to help Tom. + +# --question-- + +## --text-- + +What series of actions does Sarah suggest to Tom for setting up the software? + +## --answers-- + +Download the installer, follow the setup process, and ask for help if needed. + +--- + +Visit the official website and read the installation guide. + +### --feedback-- + +While visiting the website is implied, Sarah specifically mentions downloading the installer and following the setup process. + +--- + +Ignore the official website and try installing without guidance. + +### --feedback-- + +Sarah advises using the official installer and following its guidance, not ignoring it. + +--- + +Wait for assistance without trying the installation. + +### --feedback-- + +Sarah's suggestion involves active steps by Tom, not just waiting for assistance. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md new file mode 100644 index 00000000000..487f86b1cbb --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d612ad11c279939fb91c.md @@ -0,0 +1,53 @@ +--- +id: 6625d612ad11c279939fb91c +title: Task 40 +challengeType: 22 +dashedName: task-40 +--- + + + +# --description-- + +`To troubleshoot` means to identify and solve problems or issues, especially with equipment or systems. For example, `troubleshooting a computer problem` means figuring out what's wrong and how to fix it. + +# --fillInTheBlank-- + +## --sentence-- + +`We can _ together. By the way, _ you ever tried looking at the official _ for this _?` + +## --blanks-- + +`troubleshoot` + +### --feedback-- + +This word refers to the process of solving problems or fixing issues. + +--- + +`have` + +### --feedback-- + +This word is used as part of a question about past experiences. + +--- + +`documentation` + +### --feedback-- + +This word refers to written material that provides detailed information about a topic. + +--- + +`library` + +### --feedback-- + +In programming, this word refers to a collection of code used for common tasks. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md new file mode 100644 index 00000000000..391d5bcc4d6 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6554783147a7dbce128.md @@ -0,0 +1,53 @@ +--- +id: 6625d6554783147a7dbce128 +title: Task 41 +challengeType: 19 +dashedName: task-41 +--- + + + +# --description-- + +Sarah is offering assistance to Tom in his coding challenge. + +# --question-- + +## --text-- + +Which part of Sarah's speech implies that she is offering help? + +## --answers-- + +Asking if Tom has tried looking at the documentation + +### --feedback-- + +While this shows interest, it's more of an inquiry than an offer of help. + +--- + +Mentioning the official documentation for the library + +### --feedback-- + +This is informative, but the offer of help is indicated elsewhere in her speech. + +--- + +Discussing the use of libraries in programming + +### --feedback-- + +Discussing libraries is part of the conversation, but it's not where she offers help. + +--- + +Suggesting to troubleshoot together + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md new file mode 100644 index 00000000000..bb21ec05937 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d6b086abb87b8c962955.md @@ -0,0 +1,45 @@ +--- +id: 6625d6b086abb87b8c962955 +title: Task 42 +challengeType: 22 +dashedName: task-42 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`_ the way, have you ever tried looking _ the official documentation _ this library?` + +## --blanks-- + +`By` + +### --feedback-- + +It starts a phrase which is used to smoothly introduce a new topic or point in the conversation. + +--- + +`at` + +### --feedback-- + +This preposition indicates focusing attention or sight on something, like reading or examining. + +--- + +`for` + +### --feedback-- + +It indicates the intended purpose or reason, in this case, the specific library being discussed. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md new file mode 100644 index 00000000000..960d9ad3602 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d757c9a1667d13c358db.md @@ -0,0 +1,53 @@ +--- +id: 6625d757c9a1667d13c358db +title: Task 43 +challengeType: 19 +dashedName: task-43 +--- + + + +# --description-- + +This task checks if you understand a simple question about using documentation. + +# --question-- + +## --text-- + +What does Sarah want to know from Tom? + +## --answers-- + +If Tom has ever read the guide for the library + +--- + +If Tom has used this library in another project + +### --feedback-- + +This choice is not quite right. Sarah is asking about reading the library's guide, not using the library in a project. + +--- + +If Tom knows where the library is + +### --feedback-- + +Sarah's question is about reading the official guide, not about finding the library. + +--- + +If Tom likes the library + +### --feedback-- + +The question isn't about whether Tom likes the library; it's about whether he has read the guide. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md new file mode 100644 index 00000000000..35833bc9064 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d7e129384c7ec26b2cc3.md @@ -0,0 +1,37 @@ +--- +id: 6625d7e129384c7ec26b2cc3 +title: Task 44 +challengeType: 22 +dashedName: task-44 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`I looked at it, but it seemed a bit _. Do you have any tips on how to _ it?` + +## --blanks-- + +`overwhelming` + +### --feedback-- + +This word describes feeling that something is too much or too challenging to manage. + +--- + +`approach` + +### --feedback-- + +This word refers to the way a task or problem is dealt with. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md new file mode 100644 index 00000000000..c6d0e9b2c22 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d81940f2c57f66bbd17e.md @@ -0,0 +1,53 @@ +--- +id: 6625d81940f2c57f66bbd17e +title: Task 45 +challengeType: 19 +dashedName: task-45 +--- + + + +# --description-- + +Tom expresses his concerns. + +# --question-- + +## --text-- + +How does Tom feel about the official documentation, and what does he want to know? + +## --answers-- + +He is confident about it and wants to know more advanced tips. + +### --feedback-- + +Tom indicates feeling overwhelmed, not confident. + +--- + +He finds it easy to understand and is looking for additional resources. + +### --feedback-- + +Tom mentions feeling overwhelmed, not that it's easy. + +--- + +He feels it's too complex and asks for tips on how to approach it. + +--- + +He is not interested in the documentation and prefers alternative methods. + +### --feedback-- + +Tom's inquiry about how to approach the documentation suggests interest, not disinterest. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md new file mode 100644 index 00000000000..f53a7ab7524 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d84e92201f802eac3973.md @@ -0,0 +1,39 @@ +--- +id: 6625d84e92201f802eac3973 +title: Task 46 +challengeType: 22 +dashedName: task-46 +--- + + + +# --description-- + +`Introductory` refers to the beginning part of something. It's like the first chapter of a book. In documentation, `introductory` sections help you start and understand the basics. + +`Extensive` means large in amount. For example, `A book with many pages is extensive.` It's like having a lot of something. + +# --fillInTheBlank-- + +## --sentence-- + +`When the documentation is _, start with the _ sections.` + +## --blanks-- + +`extensive` + +### --feedback-- + +This word means having a lot or covering a wide area. + +--- + +`introductory` + +### --feedback-- + +This word describes the first part that introduces the main subject. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md new file mode 100644 index 00000000000..bc5537d54c2 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d8bc46b89481625b068b.md @@ -0,0 +1,53 @@ +--- +id: 6625d8bc46b89481625b068b +title: Task 47 +challengeType: 19 +dashedName: task-47 +--- + + + +# --description-- + +Sarah gives advice on how to handle large documentation. + +# --question-- + +## --text-- + +What does Sarah suggest doing when dealing with extensive documentation? + +## --answers-- + +To read the entire documentation in one go + +### --feedback-- + +This suggestion is overwhelming. Sarah advises a more manageable approach. + +--- + +To skip the introductory sections and go to the advanced topics + +### --feedback-- + +Sarah specifically recommends another thing. + +--- + +To ignore the documentation and ask for help instead + +### --feedback-- + +Sarah's advice is to use the documentation, starting with the introductory parts. + +--- + +To start with the introductory sections + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md new file mode 100644 index 00000000000..cb10038be64 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d910fb77f9826de00b73.md @@ -0,0 +1,53 @@ +--- +id: 6625d910fb77f9826de00b73 +title: Task 48 +challengeType: 19 +dashedName: task-48 +--- + + + +# --description-- + +Sarah keeps sharing her advice. + +# --question-- + +## --text-- + +What is the advantage of starting with introductory sections according to Sarah? + +## --answers-- + +It makes the documentation more manageable by focusing on core concepts first. + +--- + +It saves time by avoiding unnecessary details. + +### --feedback-- + +Sarah's focus is on understanding core concepts. + +--- + +Introductory sections are always the most interesting. + +### --feedback-- + +Sarah's emphasis is on manageability, not interest. + +--- + +You can skip learning the more difficult parts. + +### --feedback-- + +Sarah suggests building a foundation, not skipping parts. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md new file mode 100644 index 00000000000..371c3cd8af5 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d9508854008334d44831.md @@ -0,0 +1,37 @@ +--- +id: 6625d9508854008334d44831 +title: Task 49 +challengeType: 22 +dashedName: task-49 +--- + + + +# --description-- + +`To join` in this context means to become a member of a group or to participate in an activity. For instance, `joining a book club` means becoming a part of that group. + +# --fillInTheBlank-- + +## --sentence-- + +`Also, have you ever _ online tech forums or _?` + +## --blanks-- + +`joined` + +### --feedback-- + +This word means to become a member or part of a group. + +--- + +`communities` + +### --feedback-- + +This word refers to groups of people with shared interests, often found online. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md new file mode 100644 index 00000000000..85ace3427a4 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625d987196d2383e359d41f.md @@ -0,0 +1,54 @@ +--- +id: 6625d987196d2383e359d41f +title: Task 50 +challengeType: 19 +dashedName: task-50 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +Has Tom joined any online tech forums or communities? + +## --answers-- + +Yes, he is active in many forums. + +### --feedback-- + +Tom's response `Not yet` indicates that he hasn't joined any such forums or communities. + +--- + +No, he has not joined any yet. + +--- + +He only joins forums for special occasions. + +### --feedback-- + +Tom makes no mention of joining forums for specific reasons; he simply states he hasn't joined any. + +--- + +He prefers in-person communities over online ones. + +### --feedback-- + +Tom's preference for in-person over online communities isn't mentioned in his response. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md new file mode 100644 index 00000000000..e549a237c74 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da09ef6e5b8547626587.md @@ -0,0 +1,37 @@ +--- +id: 6625da09ef6e5b8547626587 +title: Task 51 +challengeType: 22 +dashedName: task-51 +--- + + + +# --description-- + +Fill in the blanks in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! _ forums or communities _ a platform where you can ask questions and learn from others' experiences.` + +## --blanks-- + +`Joining` + +### --feedback-- + +This word means becoming part of a group or activity. + +--- + +`provides` + +### --feedback-- + +This word means to supply or make available. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md new file mode 100644 index 00000000000..a0a9a939d04 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625da582aba58863d900bcf.md @@ -0,0 +1,47 @@ +--- +id: 6625da582aba58863d900bcf +title: Task 52 +challengeType: 22 +dashedName: task-52 +--- + + + +# --description-- + +When a word ends in `s` and you want to show possession, you add an apostrophe (`'`) at the end. + +For example, `Thomas' book` shows that the book belongs to Thomas. `The forums' rules` means the rules of the forums. `In two weeks' time` means in the time span of two weeks. + +# --fillInTheBlank-- + +## --sentence-- + +`Absolutely! Joining _ or communities provides a _ where you can ask questions and learn from _ experiences.` + +## --blanks-- + +`forums` + +### --feedback-- + +These are websites where people can post messages to discuss different topics. + +--- + +`platform` + +### --feedback-- + +This word means a place or opportunity for expressing ideas or opinions. + +--- + +`others'` + +### --feedback-- + +This possessive form indicates something belonging to other people. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md new file mode 100644 index 00000000000..d59e6614633 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc1d103a638a7fd5308b.md @@ -0,0 +1,53 @@ +--- +id: 6625dc1d103a638a7fd5308b +title: Task 53 +challengeType: 19 +dashedName: task-53 +--- + + + +# --description-- + +Sarah talks about online forums and communities. + +# --question-- + +## --text-- + +What does Sarah think about online forums and communities? + +## --answers-- + +She doesn't find them helpful. + +### --feedback-- + +Sarah says they are good for asking questions and learning, so she finds them helpful. + +--- + +She thinks they are helpful for learning and asking questions. + +--- + +They are only for people who know a lot. + +### --feedback-- + +Sarah suggests they are good for everyone, not just for those who know a lot. + +--- + +She isn't sure if they are good or not. + +### --feedback-- + +Sarah sounds sure they are good. She says `Absolutely!` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md new file mode 100644 index 00000000000..24e40e7c8a8 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dc81861c0d8b754a4829.md @@ -0,0 +1,54 @@ +--- +id: 6625dc81861c0d8b754a4829 +title: Task 54 +challengeType: 19 +dashedName: task-54 +--- + + + +# --description-- + +Tom is responding to Sarah's suggestion about using online forums and communities. + +# --question-- + +## --text-- + +How does Tom respond to Sarah's suggestion about online forums and communities? + +## --answers-- + +He is enthusiastic and plans to try it. + +--- + +He is not interested and politely refuses. + +### --feedback-- + +Tom's use of `Awesome` and `I'll give it a try` indicates interest, not refusal. + +--- + +He asks for more information before deciding. + +### --feedback-- + +Tom immediately accepts the suggestion without asking for more details. + +--- + +He changes the subject to avoid answering. + +### --feedback-- + +Tom directly responds to the suggestion, showing he is willing to try it. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md new file mode 100644 index 00000000000..04cfef1fb1f --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625ddee54d1db9090a4800f.md @@ -0,0 +1,14 @@ +--- +id: 6625ddee54d1db9090a4800f +title: "Dialogue 3: Offering Assistance and Receiving Guidance" +challengeType: 21 +dashedName: dialogue-3-offering-assistance-and-receiving-guidance +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md new file mode 100644 index 00000000000..980401f77ee --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625de24962337919e462c20.md @@ -0,0 +1,39 @@ +--- +id: 6625de24962337919e462c20 +title: Task 55 +challengeType: 22 +dashedName: task-55 +--- + + + +# --description-- + +`To struggle with` something means to have difficulty handling or coping with it. For example, `struggling with a difficult math problem` means having a hard time solving it. It's like facing a challenge that is not easy to overcome. + +`Need a hand?` is an informal way of asking if someone needs help. It's like saying, `Do you need some assistance?` For instance, if you see someone carrying a lot of books, you might ask, `Need a hand with those books?` + +# --fillInTheBlank-- + +## --sentence-- + +`Tom, I noticed you were _ with the version control system. _ a hand?` + +## --blanks-- + +`struggling` + +### --feedback-- + +This word means having difficulty with something, facing a challenge. + +--- + +`Need` + +### --feedback-- + +It means requiring assistance or support from someone else. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md new file mode 100644 index 00000000000..93e348a651c --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625deaf1ab4a69314d3125e.md @@ -0,0 +1,53 @@ +--- +id: 6625deaf1ab4a69314d3125e +title: Task 56 +challengeType: 19 +dashedName: task-56 +--- + + + +# --description-- + +Maria observes something and talks to Tom. + +# --question-- + +## --text-- + +What is happening in this interaction between Maria and Tom? + +## --answers-- + +Tom is offering to help Maria with the version control system. + +### --feedback-- + +Maria is the one offering help to Tom, not the other way around. + +--- + +Maria is asking Tom for help with the version control system. + +### --feedback-- + +Maria notices Tom's struggle and offers help, rather than asking for it herself. + +--- + +Maria notices Tom's difficulty and offers assistance. + +--- + +They are discussing how easy the version control system is. + +### --feedback-- + +The conversation is about Tom struggling, not about the ease of the system. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md new file mode 100644 index 00000000000..f6309c22dfe --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dee8ccb83a93da674fca.md @@ -0,0 +1,47 @@ +--- +id: 6625dee8ccb83a93da674fca +title: Task 57 +challengeType: 22 +dashedName: task-57 +--- + + + +# --description-- + +`Having a hard time` means experiencing difficulty with something. For example, `I'm having a hard time lifting this box` means the box is difficult to lift. + +`Having a good time` means enjoying yourself or having fun. For instance, `I'm having a good time at the party` means you are enjoying the party. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a _ time _ how to merge branches. Have you ever _ to deal with this?` + +## --blanks-- + +`hard` + +### --feedback-- + +It means experiencing difficulty or challenges. + +--- + +`understanding` + +### --feedback-- + +This word refers to the process of comprehending or grasping something. + +--- + +`had` + +### --feedback-- + +This word is used to indicate past experience or occurrence. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md new file mode 100644 index 00000000000..0a456fdc862 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df2bb732da94b03089d1.md @@ -0,0 +1,39 @@ +--- +id: 6625df2bb732da94b03089d1 +title: Task 58 +challengeType: 22 +dashedName: task-58 +--- + + + +# --description-- + +`To merge branches` in version control systems like Git means combining the changes from one branch into another. For example, `merging a feature branch into the main branch` means adding the new feature to the main code. + +`To deal with` something means to handle or manage it, especially a problem or challenge. For instance, `dealing with a difficult customer` means managing the situation with the customer. + +# --fillInTheBlank-- + +## --sentence-- + +`Oh, thanks, Maria. I'm having a hard time understanding how to _ branches. Have you ever had to _ with this?` + +## --blanks-- + +`merge` + +### --feedback-- + +This word refers to the action of combining changes from different branches. + +--- + +`deal` + +### --feedback-- + +This word means to handle or manage a situation or problem. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md new file mode 100644 index 00000000000..08e4b2dc642 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625df8d71b44495cde83d48.md @@ -0,0 +1,53 @@ +--- +id: 6625df8d71b44495cde83d48 +title: Task 59 +challengeType: 19 +dashedName: task-59 +--- + + + +# --description-- + +Tom is expressing difficulty with a specific aspect of version control in programming. + +# --question-- + +## --text-- + +What is Tom having a hard time with? + +## --answers-- + +Learning to code in a new programming language + +### --feedback-- + +Tom's struggle is specific to merging branches, not learning a new language. + +--- + +Setting up his computer + +### --feedback-- + +His difficulty is related to version control, not computer setup. + +--- + +Understanding how to merge branches in a version control system + +--- + +Using the internet effectively + +### --feedback-- + +Tom's challenge is about version control, not general internet use. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md new file mode 100644 index 00000000000..a67d8977762 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625dfe17a5dd696cf89cb01.md @@ -0,0 +1,53 @@ +--- +id: 6625dfe17a5dd696cf89cb01 +title: Task 60 +challengeType: 19 +dashedName: task-60 +--- + + + +# --description-- + +Maria is responding to Tom's question about merging branches. + +# --question-- + +## --text-- + +How often does Maria merge branches? + +## --answers-- + +All the time + +--- + +Rarely + +### --feedback-- + +Maria indicates she does it frequently. + +--- + +Never as she avoids merging + +### --feedback-- + +Maria says `All the time`, implying she does merge branches, not that she avoids it. + +--- + +Only when it's absolutely necessary + +### --feedback-- + +Her response suggests she merges branches regularly, not just in specific situations. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md new file mode 100644 index 00000000000..e0d27a3d0fa --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e02aa797a497b69d2c55.md @@ -0,0 +1,45 @@ +--- +id: 6625e02aa797a497b69d2c55 +title: Task 61 +challengeType: 22 +dashedName: task-61 +--- + + + +# --description-- + +This task focuses on understanding specific terms related to version control and guidance in programming. + +# --fillInTheBlank-- + +## --sentence-- + +`All the time. _ can be _. Let's sit down after the meeting, and I'll walk you _ it step by step.` + +## --blanks-- + +`Merging` + +### --feedback-- + +This word refers to the process of combining changes from different branches. + +--- + +`tricky` + +### --feedback-- + +This word describes something as difficult or complex to handle. + +--- + +`through` + +### --feedback-- + +This word is used to indicate guiding someone from the beginning to the end of a process. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md new file mode 100644 index 00000000000..3b86543e338 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e08130068e98c6c166c6.md @@ -0,0 +1,53 @@ +--- +id: 6625e08130068e98c6c166c6 +title: Task 62 +challengeType: 19 +dashedName: task-62 +--- + + + +# --description-- + +This task is about understanding what Maria is offering to do for Tom in relation to a technical task. + +# --question-- + +## --text-- + +What is Maria suggesting to Tom? + +## --answers-- + +To handle merging by himself + +### --feedback-- + +Maria offers to help, not suggesting Tom do it alone. + +--- + +To sit down with her for guidance on merging + +--- + +To avoid merging until he has more experience + +### --feedback-- + +Maria's offer of help implies that she doesn't want Tom to avoid merging. + +--- + +That she will do the merging for him + +### --feedback-- + +Maria suggests guiding Tom, not doing the task for him. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md new file mode 100644 index 00000000000..c73f3a78700 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/6625e0c2e7f616999352aa7b.md @@ -0,0 +1,68 @@ +--- +id: 6625e0c2e7f616999352aa7b +title: Task 63 +challengeType: 22 +dashedName: task-63 +--- + + + +# --description-- + +This task summarizes the dialogue between Maria and Tom, focusing on the key words related to their interaction about version control and merging branches. + +# --fillInTheBlank-- + +## --sentence-- + +`Tom was _ with the version control system, and Maria offered to _ a _. She frequently _ with merging branches and suggested sitting down to _ Tom _ the process.` + +## --blanks-- + +`struggling` + +### --feedback-- + +It refers to Tom having difficulty with the version control system. + +--- + +`give` + +### --feedback-- + +Maria offers assistance to Tom. + +--- + +`hand` + +### --feedback-- + +It refers to help or assistance. + +--- + +`deals` + +### --feedback-- + +Maria is experienced with handling such tasks. + +--- + +`guide` + +### --feedback-- + +Maria proposes to help Tom understand the process. + +--- + +`through` + +### --feedback-- + +It indicates guiding someone from start to finish. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md deleted file mode 100644 index f8df3239aec..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-request-and-receive-guidance/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd6b40aabaf962afdf02d -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md new file mode 100644 index 00000000000..2654cf369a1 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100326d773b61282509e50.md @@ -0,0 +1,14 @@ +--- +id: 66100326d773b61282509e50 +title: "Dialogue 1: During a Weekly Meeting" +challengeType: 21 +dashedName: dialogue-1-during-a-weekly-meeting +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md new file mode 100644 index 00000000000..647f54e6ef0 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661003c35e5ba713abd2da6c.md @@ -0,0 +1,45 @@ +--- +id: 661003c35e5ba713abd2da6c +title: Task 1 +challengeType: 22 +dashedName: task-1 +--- + + + +# --description-- + +`Daily` means something happens every day. For example, `I check my email daily.` + +`Weekly` means something happens once a week. Like a meeting that happens every Monday. + +`Monthly` means something happens once a month. For instance, `We have a team lunch monthly.` + +`Yearly` means something happens once a year. An example is, `Our company hosts a big event yearly.` + +Understanding these time intervals is important in both everyday life and in professional settings, like in project meetings or planning. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi everyone, let's start our _ project update meeting. Sarah, would you like to _?` + +## --blanks-- + +`weekly` + +### --feedback-- + +It refers to something happening once a week. In this case, the project update meeting occurs every week. + +--- + +`begin` + +### --feedback-- + +It means to start something. Bob is asking Sarah if she would like to start talking about her part of the project. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md new file mode 100644 index 00000000000..44010418330 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610041a61d5ec13feffff07.md @@ -0,0 +1,47 @@ +--- +id: 6610041a61d5ec13feffff07 +title: Task 2 +challengeType: 22 +dashedName: task-2 +--- + + + +# --description-- + +An `interface` in technology, especially in apps or websites, is the part that people interact with. It's like the front of a TV that has buttons and a screen. + +A `mockup` is a model or a draft of something. In design, it's like drawing a sketch of a room before you decorate it to see how it might look. + +# --fillInTheBlank-- + +## --sentence-- + +`Sure. This week, I worked on the user _ design. I designed a new layout for the app, and I created some _ to show _ it will look.` + +## --blanks-- + +`interface` + +### --feedback-- + +In this context, it refers to the part of the app that users will see and interact with. + +--- + +`mockups` + +### --feedback-- + +They are preliminary models or drafts used to give an early idea of what the final product will look like. + +--- + +`how` + +### --feedback-- + +It is used to introduce a way or manner, in this case, explaining the app's design. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md new file mode 100644 index 00000000000..a27d83148ef --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6610056e633ce41466b6c5bc.md @@ -0,0 +1,53 @@ +--- +id: 6610056e633ce41466b6c5bc +title: Task 3 +challengeType: 19 +dashedName: task-3 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah work on this week? + +## --answers-- + +She fixed bugs in the app's code. + +### --feedback-- + +This choice is incorrect. Sarah's work was focused on design aspects, not on fixing coding bugs. + +--- + +She worked on the user interface design, creating a new layout and mockups. + +--- + +She conducted user testing for the app. + +### --feedback-- + +While user testing is important, it was not mentioned as part of Sarah's tasks for this week. + +--- + +She wrote documentation for the app. + +### --feedback-- + +Sarah's focus was on design elements, not on writing documentation. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md new file mode 100644 index 00000000000..a4fa899a822 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661005bbe1801e14c303a57a.md @@ -0,0 +1,55 @@ +--- +id: 661005bbe1801e14c303a57a +title: Task 4 +challengeType: 22 +dashedName: task-4 +--- + + + +# --description-- + +`Pretty` is used to make an adjective stronger. For example, `I'm pretty tired` means I'm quite tired. + +`Minor` means small or not very important. For example, `There are a few minor problems with my bike` means there are some small problems. + +# --fillInTheBlank-- + +## --sentence-- + +`That's great, Sarah! I’ve also been _ busy this week. I tested the new _ we added last week. It _ to be working well. And I found a few _ issues that we need to fix.` + +## --blanks-- + +`pretty` + +### --feedback-- + +It is used here as an intensifier to describe the level of busyness, meaning Bob was quite busy. + +--- + +`feature` + +### --feedback-- + +It refers to a specific function or part of a product, in this case, something new added to their project. + +--- + +`seems` + +### --feedback-- + +This word is used to express an appearance or impression, here indicating that the new feature appears to work well. + +--- + +`minor` + +### --feedback-- + +It indicates that the issues found were not very large or critical. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md new file mode 100644 index 00000000000..f85a2b8e8fb --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66100646290700150caff732.md @@ -0,0 +1,53 @@ +--- +id: 66100646290700150caff732 +title: Task 5 +challengeType: 19 +dashedName: task-5 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Bob do this week? + +## --answers-- + +He tested the new feature and found a few minor issues. + +--- + +He was on vacation. + +### --feedback-- + +This option is incorrect as Bob mentions he was busy testing a new feature and finding issues. + +--- + +He worked on creating a new app. + +### --feedback-- + +While Bob was busy with a feature, there's no mention of him creating a new app. + +--- + +He attended a technology conference. + +### --feedback-- + +Bob's activities were related to testing and issue-finding, not attending a conference. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md new file mode 100644 index 00000000000..68b13722a79 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661215c06938a71ad4101c93.md @@ -0,0 +1,61 @@ +--- +id: 661215c06938a71ad4101c93 +title: Task 6 +challengeType: 22 +dashedName: task-6 +--- + + + +# --description-- + +`To catch` can have the meaning of noticing or finding something, often a problem or mistake. Like when you say, `I caught a spelling error in the report.` Here, `caught` is the past tense of `catch`. + +A `market` is a place or area where goods are sold, or in business, it refers to the group of people who might buy a product. For example, `We studied the smartphone market.` + +`To gather` means to collect or bring together. In business, you might `gather` information or data, like `We gathered customer feedback.` + +An `informed decision` is a choice made based on good information or knowledge. For example, `After researching, we made an informed decision about our project.` + +These terms are useful in business and technology for discussing work and decision-making. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks for _ those. As for me, I also finished the _ research report. I presented it to the team yesterday. We’ve _ valuable data that will help us make _ decisions.` + +## --blanks-- + +`catching` + +### --feedback-- + +In this context, it refers to identifying or noticing something, like issues or errors. + +--- + +`market` + +### --feedback-- + +It refers to the area of study or interest in business, like studying consumer trends or needs. + +--- + +`gathered` + +### --feedback-- + +It means collected. Here, it refers to collecting data or information. + +--- + +`informed` + +### --feedback-- + +It means the decisions are based on good information or knowledge. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md new file mode 100644 index 00000000000..4d06409d8e3 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216bbf6d9a51b409172a8.md @@ -0,0 +1,53 @@ +--- +id: 661216bbf6d9a51b409172a8 +title: Task 7 +challengeType: 19 +dashedName: task-7 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does `gathered` mean in Sarah's statement about the market research report? + +## --answers-- + +She organized a meeting to discuss the report. + +### --feedback-- + +This choice is incorrect. `Gathered` in this context refers to collecting data, not organizing meetings. + +--- + +She collected valuable data from the research. + +--- + +She wrote the main conclusions of the report. + +### --feedback-- + +While summarizing is important, `gathered` here specifically refers to the collection of data, not writing conclusions. + +--- + +She designed the layout of the report. + +### --feedback-- + +`Gathered` doesn't relate to designing; it's about collecting information or data. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md new file mode 100644 index 00000000000..05e9e9fa256 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661216ff45b1871b85f57a1a.md @@ -0,0 +1,38 @@ +--- +id: 661216ff45b1871b85f57a1a +title: Task 8 +challengeType: 22 +dashedName: task-8 +--- + + + +# --description-- + +`Satisfaction` is a feeling of happiness or pleasure when you achieve something or when something meets your expectations. In business, `customer satisfaction` is very important. It means the customers are happy with the products or services provided. + + +# --fillInTheBlank-- + +## --sentence-- + +`Excellent work, team! I _ a meeting with the client to discuss their feedback. They liked our progress so far and expressed _ with our work.` + +## --blanks-- + +`organized` + +### --feedback-- + +The word is used here to describe the action of planning or arranging a meeting. + +--- + +`satisfaction` + +### --feedback-- + +In this context, it refers to the clients being pleased or content with the team's work. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md new file mode 100644 index 00000000000..009959f2762 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612181d89fdfc1c2f44309d.md @@ -0,0 +1,53 @@ +--- +id: 6612181d89fdfc1c2f44309d +title: Task 9 +challengeType: 19 +dashedName: task-9 +--- + + + +# --description-- + +An `outcome` is the result or effect of an action, situation, or event. It's what happens as a result of something. In the context of technology, for example, the `outcome` of a software update might be improved performance or new features. + +# --question-- + +## --text-- + +What is the `outcome` of the meeting Bob organized with the client? + +## --answers-- + +The client requested major changes to the project. + +### --feedback-- + +This choice is incorrect. Bob mentioned that the client expressed satisfaction, not a request for major changes. + +--- + +The client canceled the project. + +### --feedback-- + +Canceling the project contradicts the client's expressed satisfaction as mentioned by Bob. + +--- + +The client was satisfied with the team's progress. + +--- + +The team needs to start over with the project. + +### --feedback-- + +This option is incorrect as it contradicts the client's satisfaction with the current progress. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md new file mode 100644 index 00000000000..f90d3b8d2af --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661218bc905fb61c898221b4.md @@ -0,0 +1,37 @@ +--- +id: 661218bc905fb61c898221b4 +title: Task 10 +challengeType: 22 +dashedName: task-10 +--- + + + +# --description-- + +`Wonderful` means something is very good or pleasant. It's often used to express happiness or satisfaction, like when someone says, `The news is wonderful!` + +# --fillInTheBlank-- + +## --sentence-- + +`That's _ to hear. It sounds like we have _ a lot this week.` + +## --blanks-- + +`wonderful` + +### --feedback-- + +It is used here to express happiness or satisfaction about the news or information received. + +--- + +`achieved` + +### --feedback-- + +It refers to successfully completing or reaching a goal, in this case, the team's accomplishments for the week. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md new file mode 100644 index 00000000000..cafd46a26d7 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121954a1cde81cd252ef26.md @@ -0,0 +1,53 @@ +--- +id: 66121954a1cde81cd252ef26 +title: Task 11 +challengeType: 19 +dashedName: task-11 +--- + + + +# --description-- + +Remember, the present perfect tense, formed with `have` or `has` plus the past participle of a verb, is used to describe actions or states that occurred at an unspecified time before now. The focus is on the result of the action, not the specific time it occurred. + +# --question-- + +## --text-- + +What does `have achieved` in Sarah's statement imply about the team's work? + +## --answers-- + +The team has successfully reached goals or completed tasks recently. + +--- + +The team will achieve their goals in the future. + +### --feedback-- + +This option is incorrect because `have achieved` refers to accomplishments already made, not future goals. + +--- + +The team had goals but did not achieve them. + +### --feedback-- + +`Have achieved` indicates successful accomplishment, not failure to achieve goals. + +--- + +The team is planning to start working soon. + +### --feedback-- + +The use of `have achieved` implies that the work has already been done, not just planned. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md new file mode 100644 index 00000000000..ce86cc71fb2 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121a02da620e1d25ff63d4.md @@ -0,0 +1,61 @@ +--- +id: 66121a02da620e1d25ff63d4 +title: Task 12 +challengeType: 22 +dashedName: task-12 +--- + + + +# --description-- + +`To be key to something` means to be very important or crucial. For example, in a team, `Good communication is key to success` means that success depends a lot on good communication. + +# --fillInTheBlank-- + +## --sentence-- + +`Yes, it's _ a productive week. Let's keep _ the good work. Don't _ to report any issues and communicate with the team as _. Our collaboration is _ to our success.` + +## --blanks-- + +`been` + +### --feedback-- + +It indicates a past experience or state, here referring to the week being productive. + +--- + +`up` + +### --feedback-- + +It's part of a phrase meaning to continue in the same manner. Bob is encouraging the team to continue their good work. + +--- + +`forget` + +### --feedback-- + +It means to be unable to remember something or someone. Bob is emphasizing the importance of remembering to do something, like reporting issues. + +--- + +`needed` + +### --feedback-- + +It suggests doing something when it is necessary, in this case, communicating with the team. + +--- + +`key` + +### --feedback-- + +In this context, it means very important. Bob is emphasizing that collaboration is crucial to their success. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md new file mode 100644 index 00000000000..e6d513c836e --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66121b3a462fe01da4816b39.md @@ -0,0 +1,53 @@ +--- +id: 66121b3a462fe01da4816b39 +title: Task 13 +challengeType: 19 +dashedName: task-13 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What instructions does Bob give to the team? + +## --answers-- + +To take a break and relax for the next week + +### --feedback-- + +This choice is incorrect. Bob emphasizes continuing the good work and communicating, not taking a break. + +--- + +To stop reporting issues and work independently + +### --feedback-- + +This option is contrary to Bob's instructions. He specifically asks to report any issues and communicate with the team. + +--- + +To start working on a different project + +### --feedback-- + +Bob's focus is on maintaining the current good work and teamwork, not on starting a new project. + +--- + +To continue the good work, report any issues, and communicate as needed + +## --video-solution-- + +4 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md new file mode 100644 index 00000000000..4f1792f75c3 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a393fd32d2a4876ca95.md @@ -0,0 +1,14 @@ +--- +id: 66122a393fd32d2a4876ca95 +title: "Dialogue 2: A Manager and a Direct Report in a Performance Review" +challengeType: 21 +dashedName: dialogue-2-a-manager-and-a-direct-report-in-a-performance-review +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md new file mode 100644 index 00000000000..c491d7de560 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122a6093ba082abb2cd136.md @@ -0,0 +1,39 @@ +--- +id: 66122a6093ba082abb2cd136 +title: Task 14 +challengeType: 22 +dashedName: task-14 +--- + + + +# --description-- + +A `performance review` is a regular evaluation of an employee's work by their manager. It's a time to discuss how well you are doing your job, any successes you've had, and areas where you can improve. + +For example, in a tech company, a `performance review` might focus on the number of projects completed, the quality of work, and teamwork skills. + +# --fillInTheBlank-- + +## --sentence-- + +`Hi there, Brian. It's time for our _ review. How's _ going?` + +## --blanks-- + +`performance` + +### --feedback-- + +In this context, it refers to how well someone is doing their job. The review is a discussion about it. + +--- + +`everything` + +### --feedback-- + +It is a general inquiry about how all aspects of work or life are going, often used to start a conversation. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md new file mode 100644 index 00000000000..38f81c1de55 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122ab30afc8e2b1f42b78a.md @@ -0,0 +1,59 @@ +--- +id: 66122ab30afc8e2b1f42b78a +title: Task 15 +challengeType: 22 +dashedName: task-15 +--- + + + +# --description-- + +`FAQ` stands for `Frequently Asked Questions`. It's a list of questions and answers about a particular topic, often found on websites or product manuals. For example, `The software's FAQ page helps users troubleshoot common issues.` + +`Based on` is a phrase used to show that something is made using certain information or ideas. In tech, you might say, `This update is based on user suggestions.` + +To `attend` means to go to or be present at an event or meeting. In a professional setting, `attending` training can mean participating in a session to learn new skills. For instance, `I attended a webinar on cybersecurity.` + +These terms are commonly used in professional and technical contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`Things are going well. Last week, I worked _ improving our project's documentation. I updated the user manual and added some FAQs _ on customer feedback. I also _ the customer support _ session.` + +## --blanks-- + +`on` + +### --feedback-- + +It is used to indicate the focus of the improvement, in this case, the project's documentation. + +--- + +`based` + +### --feedback-- + +It indicates that the FAQs were created using the information gathered from customer feedback. + +--- + +`attended` + +### --feedback-- + +It means that Brian was present at or participated in an event, here referring to the training session. + +--- + +`training` + +### --feedback-- + +It refers to the session Brian attended, designed to teach or enhance skills, particularly in customer support. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md new file mode 100644 index 00000000000..c0760ced724 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66122b7d6f1f182bb1fe0338.md @@ -0,0 +1,53 @@ +--- +id: 66122b7d6f1f182bb1fe0338 +title: Task 16 +challengeType: 19 +dashedName: task-16 +--- + + + +# --description-- + +This task checks your comprehension of Brian's activities from last week. + +# --question-- + +## --text-- + +What did Brian work on last week? + +## --answers-- + +He developed a new software feature. + +### --feedback-- + +This choice is incorrect. Brian's focus was on documentation and training, not on developing new software features. + +--- + +He focused on marketing and sales strategies. + +### --feedback-- + +Brian's activities were related to documentation and training, not marketing and sales. + +--- + +He improved project documentation and attended a training session. + +--- + +He was on leave for personal reasons. + +### --feedback-- + +This option is incorrect as Brian mentioned actively working on project documentation and attending a training session. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md new file mode 100644 index 00000000000..292fb7ff2a7 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661253cc9fb5ee2d01a0d6a8.md @@ -0,0 +1,47 @@ +--- +id: 661253cc9fb5ee2d01a0d6a8 +title: Task 17 +challengeType: 22 +dashedName: task-17 +--- + + + +# --description-- + +`To address` means to deal with or handle a problem or challenge. In technology, for instance, you might say, `We need to address the bugs in our software.` meaning you need to find and fix the bugs. + +`Concerns` are worries, problems, or issues that someone has. In a customer support context, a `concern` might be a difficulty a user is facing with a product. For example, `The main concern of our users is the app's loading speed.` + +# --fillInTheBlank-- + +## --sentence-- + +`It helped me understand the issues our customers are facing, and I learned some _ for better _ their _.` + +## --blanks-- + +`strategies` + +### --feedback-- + +These are planned methods or approaches to solve a problem or achieve a goal. + +--- + +`addressing` + +### --feedback-- + +It means dealing with or handling, in this context, how to manage customers' issues effectively. + +--- + +`concerns` + +### --feedback-- + +It refers to the problems or challenges the customers are experiencing. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md new file mode 100644 index 00000000000..fefb05d7847 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661254cf9474ed2da90fec1b.md @@ -0,0 +1,53 @@ +--- +id: 661254cf9474ed2da90fec1b +title: Task 18 +challengeType: 19 +dashedName: task-18 +--- + + + +# --description-- + +This task tests your comprehension of what helped Brian understand his customers' problems and what he learned in the process. + +# --question-- + +## --text-- + +What helped Brian understand his customers' problems, and what did he learn? + +## --answers-- + +Updating the user manual helped him, and he learned about the new software features. + +### --feedback-- + +This choice is incorrect. While updating the user manual was part of his work, it was the training session that helped him understand customer issues and learn new strategies. + +--- + +Attending the customer support training session helped him, and he learned strategies for addressing customer concerns. + +--- + +Creating FAQs based on customer feedback helped him, and he learned how to design better user interfaces. + +### --feedback-- + +Creating FAQs was part of Brian's work, but it was specifically the training session that provided insights into customer issues and strategies. + +--- + +Working on the project documentation helped him, and he learned about project management. + +### --feedback-- + +This option is incorrect as it was the training session, not just working on documentation, that helped Brian gain insights into customer issues. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md new file mode 100644 index 00000000000..04edf7c1229 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125530a1a9e92e0e08d594.md @@ -0,0 +1,61 @@ +--- +id: 66125530a1a9e92e0e08d594 +title: Task 19 +challengeType: 22 +dashedName: task-19 +--- + + + +# --description-- + +In this task, you'll learn the differences between `short-term`, `mid-term`, and `long-term` goals. + +`Short-term` goals are objectives you plan to achieve soon, usually within a few days to a year. For example, `Finishing a report by the end of the week` is a `short-term` goal. + +`Mid-term` goals are targets set for a slightly longer period, often between a year and five years. An example might be, `Getting a professional certification in the next two years`. + +`Long-term` goals are plans that are expected to be achieved over a more extended period, typically five years or more. For instance, `Becoming a team leader in ten years` is a `long-term` goal. + +Understanding these time frames helps in setting realistic and achievable objectives in both personal and professional contexts. + +# --fillInTheBlank-- + +## --sentence-- + +`_. Learning more about our customers is essential. I _ your _. Can you tell me about your _ goals?` + +## --blanks-- + +`Excellent` + +### --feedback-- + +It is used by Maria to positively acknowledge the information shared. This word is capitalized. + +--- + +`appreciate` + +### --feedback-- + +It indicates that Maria values and is thankful for the effort shown. + +--- + +`dedication` + +### --feedback-- + +It refers to the commitment and hard work shown. + +--- + +`long-term` + +### --feedback-- + +In this context, it refers to goals that are planned to be achieved over an extended period. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md new file mode 100644 index 00000000000..bc692de56b2 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661255c3b6ea612e984a62b8.md @@ -0,0 +1,53 @@ +--- +id: 661255c3b6ea612e984a62b8 +title: Task 20 +challengeType: 19 +dashedName: task-20 +--- + + + +# --description-- + +This task assesses your understanding of Maria's perspective. + +# --question-- + +## --text-- + +What does Maria emphasize and ask about in her statement to Brian? + +## --answers-- + +She emphasizes the importance of team collaboration and asks about Brian's team management skills. + +### --feedback-- + +This choice is incorrect. Maria focuses on customer knowledge and inquires about Brian's long-term goals, not team management. + +--- + +She stresses the need for immediate results and asks about Brian's weekly tasks. + +### --feedback-- + +Maria's statement is about the importance of understanding customers and long-term goals, not immediate results or weekly tasks. + +--- + +She highlights the importance of learning about customers and asks about Brian's long-term goals. + +--- + +She appreciates Brian's technical skills and asks about his recent project achievements. + +### --feedback-- + +While Maria appreciates Brian's dedication, her focus is on understanding customers and inquiring about his long-term goals, not his technical skills or recent projects. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md new file mode 100644 index 00000000000..c0a0eadf691 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66125666f8437c2f3616045e.md @@ -0,0 +1,41 @@ +--- +id: 66125666f8437c2f3616045e +title: Task 21 +challengeType: 22 +dashedName: task-21 +--- + + + +# --description-- + +A `quarter` divides the year into four equal parts, each consisting of three months. + +The `first quarter` (Q1) covers January to March, the `second quarter` (Q2) spans April to June, the `third quarter` (Q3) includes July to September, and the `fourth quarter` (Q4) encompasses October to December. + +For example, in business, a company might review its sales at the end of each `quarter`. A tech team might have a goal to release a new software update by the end of Q2. + +# --fillInTheBlank-- + +## --sentence-- + +`Of course. By the end of the _, I plan to have the documentation I’m working on fully updated, and I _ to improve our customer support process based on the training I received.` + +## --blanks-- + +`quarter` + +### --feedback-- + +It refers to one-fourth of the year. Brian's goal is to complete his tasks by the end of this period. + +--- + +`intend` + +### --feedback-- + +It means to have a plan or aim. Brian is planning to enhance the customer support process. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md new file mode 100644 index 00000000000..fd234e27943 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661256fe823f142fb9858beb.md @@ -0,0 +1,53 @@ +--- +id: 661256fe823f142fb9858beb +title: Task 22 +challengeType: 19 +dashedName: task-22 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What does Brian plan to accomplish by the end of the quarter? + +## --answers-- + +Starting a new project from scratch + +### --feedback-- + +This option is incorrect. Brian's focus is on updating existing documentation and improving customer support, not starting a new project. + +--- + +Updating the project documentation and improve customer support + +--- + +Attending more training sessions + +### --feedback-- + +While training has influenced his plans, Brian's main goal is to update documentation and enhance customer support, not just attend training. + +--- + +Organizing team meetings + +### --feedback-- + +Organizing meetings is not mentioned; his plans are centered around documentation and customer support improvements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md new file mode 100644 index 00000000000..7515904652a --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126744e24b0a31255718a7.md @@ -0,0 +1,53 @@ +--- +id: 66126744e24b0a31255718a7 +title: Task 23 +challengeType: 19 +dashedName: task-23 +--- + + + +# --description-- + +Practice time! + +# --question-- + +## --text-- + +Why does Brian intend to improve the customer support process? + +## --answers-- + +He received complaints from customers. + +### --feedback-- + +This choice is incorrect as Brian's motivation for improving customer support is based on training, not directly on customer complaints. + +--- + +It's a routine quarterly goal. + +### --feedback-- + +The routine aspect is not mentioned; his intention is specifically linked to the insights gained from training. + +--- + +Based on the training he received. + +--- + +He wants to increase sales. + +### --feedback-- + +Increasing sales is not mentioned; his focus is on enhancing support due to his recent training. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md new file mode 100644 index 00000000000..3f159bd7d1d --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661267c5ac355931ab1f933d.md @@ -0,0 +1,51 @@ +--- +id: 661267c5ac355931ab1f933d +title: Task 24 +challengeType: 22 +dashedName: task-24 +--- + + + +# --description-- + +Being `on the right track` means going in the right direction or making good progress. For instance, in a project, if things are going as planned, you can say, `We are on the right track.` + +To `hesitate` means to pause or hold back in uncertainty. In a work context, `Don't hesitate to ask for help` means you shouldn't be afraid or unsure about asking for assistance. + +`Reach out` means to contact someone for help or information. For example, `If you have any questions, reach out to the tech support team.` + +These expressions are commonly used in professional environments to encourage ongoing progress and open communication. + +# --fillInTheBlank-- + +## --sentence-- + +`It sounds like you're on the right _. Keep up the good work, and don't _ to reach _ if you need any support.` + +## --blanks-- + +`track` + +### --feedback-- + +It refers to a path or course of action. It's used here to affirm that someone is making good progress or heading in the correct direction. + +--- + +`hesitate` + +### --feedback-- + +This verb means to pause before saying or doing something because you are uncertain, nervous, or not sure how to proceed. + +--- + +`out` + +### --feedback-- + +It suggests making an effort to contact or communicate with someone. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md new file mode 100644 index 00000000000..a61274e7d72 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612693507cbd43269ae64e0.md @@ -0,0 +1,53 @@ +--- +id: 6612693507cbd43269ae64e0 +title: Task 25 +challengeType: 19 +dashedName: task-25 +--- + + + +# --description-- + +Recognizing words of encouragement and offers of assistance is crucial in professional communication, as they contribute to a supportive work environment. + +# --question-- + +## --text-- + +What is Maria expressing to Brian in her statement? + +## --answers-- + +She is unhappy with Brian's progress and demands immediate improvement. + +### --feedback-- + +This choice is incorrect. Maria's words are supportive and encouraging, not critical. + +--- + +Maria is encouraging Brian, appreciating his efforts, and offering support if needed. + +--- + +She is instructing Brian to change his work approach completely. + +### --feedback-- + +Maria's statement does not suggest a complete change in work approach; instead, it encourages the current direction. + +--- + +Maria is asking Brian for a detailed report on his work. + +### --feedback-- + +The focus of Maria's message is encouragement and support, not requesting a detailed report. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md new file mode 100644 index 00000000000..395ce2eb4ed --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661269c4ccdd4132db7517b8.md @@ -0,0 +1,29 @@ +--- +id: 661269c4ccdd4132db7517b8 +title: Task 26 +challengeType: 22 +dashedName: task-26 +--- + + + +# --description-- + +Fill in the blank in the dialogue below. + +# --fillInTheBlank-- + +## --sentence-- + +`Thanks, Maria. I appreciate your _.` + +## --blanks-- + +`guidance` + +### --feedback-- + +In this context, it refers to the advice, support, or direction that Maria has provided to Brian. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md new file mode 100644 index 00000000000..4c040d27bae --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66126a21821998335a86a34b.md @@ -0,0 +1,53 @@ +--- +id: 66126a21821998335a86a34b +title: Task 27 +challengeType: 22 +dashedName: task-27 +--- + + + +# --description-- + +Listen to the dialogue and fill in the blanks with the correct words. + +# --fillInTheBlank-- + +## --sentence-- + +`In their performance review, Brian reports his progress on the project's _, discusses his _ to enhance customer support, and outlines his _ goals. Maria responds with encouragement and _ to provide support.` + +## --blanks-- + +`documentation` + +### --feedback-- + +It refers to the project materials Brian has been updating. + +--- + +`intention` + +### --feedback-- + +It highlights Brian's plan to improve the customer support process. + +--- + +`long-term` + +### --feedback-- + +It describes the type of goals Brian is setting for the future. + +--- + +`offers` + +### --feedback-- + +It refers to Maria's willingness to provide assistance and support. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md new file mode 100644 index 00000000000..38b47648f92 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127192c932be37ed0217e7.md @@ -0,0 +1,14 @@ +--- +id: 66127192c932be37ed0217e7 +title: "Dialogue 3: Sharing Accomplishments over Lunch" +challengeType: 21 +dashedName: dialogue-3-sharing-accomplishments-over-lunch +--- + +# --description-- + +Watch the video below to understand the context of the upcoming lessons. + +# --assignment-- + +Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md new file mode 100644 index 00000000000..bb86b7a115c --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661271c2b16aff3870604148.md @@ -0,0 +1,53 @@ +--- +id: 661271c2b16aff3870604148 +title: Task 28 +challengeType: 19 +dashedName: task-28 +--- + + + +# --description-- + +When people say `it's been a while`, they mean a long time has passed between today and the last time something happened. + +# --question-- + +## --text-- + +How long has it been since Brian and Sarah last hung out together? + +## --answers-- + +It's been a long time. + +--- + +They met just recently. + +### --feedback-- + +Brian's statement `been a while` indicates that their last meeting wasn't recent. + +--- + +They have never hung out before. + +### --feedback-- + +Brian's reference to `like this` suggests they have hung out before, contradicting the idea that they never met in this way. + +--- + +They meet regularly. + +### --feedback-- + +Brian's phrase implies that their meetings are not regular. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md new file mode 100644 index 00000000000..b330a73f265 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612727ec0a11b390b8e92cb.md @@ -0,0 +1,53 @@ +--- +id: 6612727ec0a11b390b8e92cb +title: Task 29 +challengeType: 19 +dashedName: task-29 +--- + + + +# --description-- + +`Has kept` is used to describe an ongoing action or state that started in the past and continues into the present. For example, `The training has kept me engaged.` means the training started in the past and is still engaging the person now. + +# --question-- + +## --text-- + +What does Sarah mean? + +## --answers-- + +She started a new job this week. + +### --feedback-- + +This option is incorrect as Sarah's statement refers to ongoing work keeping her busy, not starting a new job. + +--- + +She has been busy with work throughout the week. + +--- + +She is planning to take on more work soon. + +### --feedback-- + +Sarah's statement is about her current workload, not about future plans to increase it. + +--- + +She had a lot of free time this week. + +### --feedback-- + +The phrase `has kept me busy` implies that Sarah had little free time, not a lot. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md new file mode 100644 index 00000000000..2f7f0494a22 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612752978bcc239ae7b60da.md @@ -0,0 +1,45 @@ +--- +id: 6612752978bcc239ae7b60da +title: Task 30 +challengeType: 22 +dashedName: task-30 +--- + + + +# --description-- + +This task will help you practice identifying verbs in the past simple tense. + +# --fillInTheBlank-- + +## --sentence-- + +`Hey! Work has kept me busy this week. I _ on the new app interface, _ some cool icons, and _ the layout to the team yesterday.` + +## --blanks-- + +`worked` + +### --feedback-- + +It is the past simple form of `work`, indicating an action completed in the past. + +--- + +`designed` + +### --feedback-- + +It is the past simple form of `design`, used to describe a completed action of creating something. + +--- + +`presented` + +### --feedback-- + +It is the past simple form of `present`, indicating the action of showing or displaying something that has already been done. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md new file mode 100644 index 00000000000..0563ac972d7 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612757ffdc16b3a22b08427.md @@ -0,0 +1,45 @@ +--- +id: 6612757ffdc16b3a22b08427 +title: Task 31 +challengeType: 22 +dashedName: task-31 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`That sounds awesome! I _ the app for bugs. We _ a few, but the good news is we _ them all. It seems pretty solid now.` + +## --blanks-- + +`tested` + +### --feedback-- + +It is the past simple form of `test`, indicating an action that was completed in the past. + +--- + +`found` + +### --feedback-- + +It is the past simple form of `find`, used here to describe the discovery of bugs which occurred in the past. + +--- + +`fixed` + +### --feedback-- + +It is the past simple form of `fix`, indicating the completed action of resolving the found bugs. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md new file mode 100644 index 00000000000..ea4d022a22a --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612762a058bb43b960e91ca.md @@ -0,0 +1,53 @@ +--- +id: 6612762a058bb43b960e91ca +title: Task 32 +challengeType: 19 +dashedName: task-32 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Brian and his team do with the app? + +## --answers-- + +They added new features to the app. + +### --feedback-- + +Brian's focus was on testing for bugs and fixing them, not adding new features. + +--- + +They tested the app, found bugs, and fixed them. + +--- + +They only discussed potential improvements for the app. + +### --feedback-- + +Brian's statement goes beyond discussion; it involves active testing and fixing of bugs. + +--- + +They prepared the app for a major launch. + +### --feedback-- + +Preparing for a launch isn't mentioned. Brian's update is about testing and fixing bugs in the app. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md new file mode 100644 index 00000000000..dfa4166338e --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127678c88f183c0312d8e8.md @@ -0,0 +1,57 @@ +--- +id: 66127678c88f183c0312d8e8 +title: Task 33 +challengeType: 19 +dashedName: task-33 +--- + + + +# --description-- + +The expression `It seems pretty solid now` indicates the current status or quality of a project, common in professional and technical discussions. + +When something is described as `pretty solid`, it means it is very good, reliable, or strong in quality. It's a way of saying that something is dependable and performs well. + +For example, if someone says, `The plan for the weekend is pretty solid`, they mean that the plan is well-thought-out, reliable, and likely to be successful or enjoyable. + +# --question-- + +## --text-- + +What does Brian imply about the app? + +## --answers-- + +The app is likely unstable and needs more work. + +### --feedback-- + +`Pretty solid` suggests reliability and stability, not instability. + +--- + +The app is functioning well and is reliable after fixing the bugs. + +--- + +The app has not been tested thoroughly yet. + +### --feedback-- + +Brian's statement implies that after testing and fixing, the app is now in a good state, contradicting the idea of insufficient testing. + +--- + +The app will be redesigned entirely. + +### --feedback-- + +Redesigning the app is not implied in Brian's statement about its current solid state. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md new file mode 100644 index 00000000000..5a10012d3ea --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127755a52efa3c9a73065b.md @@ -0,0 +1,45 @@ +--- +id: 66127755a52efa3c9a73065b +title: Task 34 +challengeType: 22 +dashedName: task-34 +--- + + + +# --description-- + +Listen to the audio and complete the sentence. + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also _ a UX design workshop last month. I _ some great techniques for user research. I've applied them to our project, and it _ improve the user experience.` + +## --blanks-- + +`attended` + +### --feedback-- + +It is the past simple form of `attend`, showing that Sarah participated in the workshop. + +--- + +`learned` + +### --feedback-- + +It is the past simple form of `learn`, indicating that Sarah gained new knowledge. + +--- + +`helped` + +### --feedback-- + +It is the past simple form of `help`, showing that the application of new techniques had a positive effect. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md new file mode 100644 index 00000000000..442389e9165 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661277970c67233d02f138de.md @@ -0,0 +1,47 @@ +--- +id: 661277970c67233d02f138de +title: Task 35 +challengeType: 22 +dashedName: task-35 +--- + + + +# --description-- + +`UX` stands for User Experience. It refers to how a person feels when they are using a product, system, or service. This includes websites, apps, and electronic devices. A `UX designer` makes things easy and nice for people to use on the computer or phone. + +For example: `The UX of this website is excellent because it's easy to navigate and find the information you need.` + +# --fillInTheBlank-- + +## --sentence-- + +`Nice work! I also attended a _ design workshop last month. I learned some great _ for user research. I've applied them to our project, and it helped _ the user experience.` + +## --blanks-- + +`UX` + +### --feedback-- + +It stands for User Experience, a key aspect of design focusing on how users interact with products. + +--- + +`techniques` + +### --feedback-- + +It refers to methods or ways of doing something, in this case, for conducting user research. + +--- + +`improve` + +### --feedback-- + +It means to make something better, here referring to enhancing the user experience of the project. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md new file mode 100644 index 00000000000..b85f455a42a --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661278160653ee3d9040ed68.md @@ -0,0 +1,53 @@ +--- +id: 661278160653ee3d9040ed68 +title: Task 36 +challengeType: 19 +dashedName: task-36 +--- + + + +# --description-- + +Listen to the audio and answer the question. + +# --question-- + +## --text-- + +What did Sarah do last month? + +## --answers-- + +She started a new project on user experience. + +### --feedback-- + +Sarah's focus was on attending a workshop and learning new techniques, not starting a new project. + +--- + +She took a vacation. + +### --feedback-- + +Taking a vacation is not mentioned; Sarah's statement was about attending a UX design workshop. + +--- + +She attended a UX design workshop and learned user research techniques. + +--- + +She was promoted to a new position. + +### --feedback-- + +Sarah's statement revolves around attending a workshop and learning, not about a job promotion. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md new file mode 100644 index 00000000000..46d2b9863c4 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/66127850c4415c3df1b4e99a.md @@ -0,0 +1,63 @@ +--- +id: 66127850c4415c3df1b4e99a +title: Task 37 +challengeType: 22 +dashedName: task-37 +--- + + + +# --description-- + +In this task, you'll learn about the phrase `to give the green light to something`. This phrase means to give permission or approval to proceed with a project or plan. + +For example, in a work setting, a manager might say, `We've been given the green light to start the new marketing campaign.` indicating that they have approval to begin. + +# --fillInTheBlank-- + +## --sentence-- + +`That's impressive. I _ with the client _, and they _ our progress. They _ us the green light to move _ to the next phase.` + +## --blanks-- + +`met` + +### --feedback-- + +It is the past simple form of `meet`, indicating that Brian had a meeting with the client. + +--- + +`yesterday` + +### --feedback-- + +It refers to the day before today, specifying when the meeting took place. + +--- + +`loved` + +### --feedback-- + +It is the past tense of `love`, used here to show that the client was very pleased with the progress. + +--- + +`gave` + +### --feedback-- + +It is the past tense of `give`. In this context, it refers to the client giving approval. + +--- + +`on` + +### --feedback-- + +It indicates progressing or advancing to the next stage or phase of a project. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md new file mode 100644 index 00000000000..04e8d80eadf --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612792bc77de13e8f2af3ad.md @@ -0,0 +1,53 @@ +--- +id: 6612792bc77de13e8f2af3ad +title: Task 38 +challengeType: 19 +dashedName: task-38 +--- + + + +# --description-- + +This task tests your understanding of Brian's activities on the previous day. Comprehending recent events and their outcomes is important in professional settings, as they can influence project direction and team morale. + +# --question-- + +## --text-- + +What happened to Brian yesterday? + +## --answers-- + +He worked on a new project proposal. + +### --feedback-- + +Brian's statement was about meeting with the client and discussing the current project's progress, not about working on a new proposal. + +--- + +He met with the client who approved the project's progress. + +--- + +He conducted a team meeting to plan the next phase. + +### --feedback-- + +Brian's focus was on a client meeting, not on conducting a team meeting. + +--- + +He resolved technical issues in the project. + +### --feedback-- + +Fixing technical issues isn't mentioned; the focus was on a client meeting where they expressed satisfaction with the project's progress. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md new file mode 100644 index 00000000000..2424b3eef03 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/6612797faf03663ef83f4459.md @@ -0,0 +1,39 @@ +--- +id: 6612797faf03663ef83f4459 +title: Task 39 +challengeType: 22 +dashedName: task-39 +--- + + + +# --description-- + +`Way to go` is an informal way of congratulating someone or showing approval for their success or progress. It's like saying "well done" or "good job". + +For example, in a work context, if a team member completes a challenging task, you might say, `Way to go on finishing that report!` + +# --fillInTheBlank-- + +## --sentence-- + +`_ to go! It looks like _ making great progress.` + +## --blanks-- + +`Way` + +### --feedback-- + +It is used here as part of an expression of congratulations or approval for good work or progress. This word is capitalized. + +--- + +`we're` + +### --feedback-- + +It is a contraction of `we are`, indicating the ongoing action of making progress by the team. diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md new file mode 100644 index 00000000000..354df1265e7 --- /dev/null +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/661279c8d3bf0f3f6f23f21f.md @@ -0,0 +1,53 @@ +--- +id: 661279c8d3bf0f3f6f23f21f +title: Task 40 +challengeType: 19 +dashedName: task-40 +--- + + + +# --description-- + +Listen to the dialogue and answer the question. + +# --question-- + +## --text-- + +What is the summary of Brian and Sarah's conversation? + +## --answers-- + +They discussed their work, a UX design workshop, and client meetings. + +--- + +They talked about starting a new project next week. + +### --feedback-- + +The conversation focused on their current work and achievements, not starting a new project. + +--- + +They planned a team outing to discuss future strategies. + +### --feedback-- + +The discussion was about their work and recent achievements, not about planning a team outing. + +--- + +Brian and Sarah complained about their workload and lack of progress. + +### --feedback-- + +Their conversation was positive, discussing their achievements and progress. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md deleted file mode 100644 index 4d3b6011a30..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-progress-and-accomplishments/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd38e0ee8668d87f50f82 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md index 48b24985c4a..28053dbd657 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c5fb3e65fd9cb85253a5.md @@ -1,15 +1,178 @@ --- id: 6579c5fb3e65fd9cb85253a5 -title: "Dialogue 1: Offering suggestions in a meeting" +title: "Dialogue 1: Offering Suggestions in a Meeting" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-1-offering-suggestions-in-a-meeting --- # --description-- -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Перегляньте відео + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md index ea57d7c460a..cd6fca46f94 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c82fc81196a43686415a.md @@ -3,13 +3,9 @@ id: 6579c82fc81196a43686415a title: Завдання 1 challengeType: 22 dashedName: task-1 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ## --sentence-- -`Good morning, _ . Let's start with our _ -up meeting. Sophie, can you begin?` +`Good morning, _ . Let's start with our _-up meeting. Sophie, can you begin?` ## --blanks-- @@ -27,7 +23,7 @@ A `stand-up meeting` is a brief, informal meeting often used in workplaces, espe ### --feedback-- -Bob addresses `everyone` in the team, indicating the meeting is for all members. +Bob uses this word to indicate the meeting is for all members. --- @@ -35,5 +31,52 @@ Bob addresses `everyone` in the team, indicating the meeting is for all members. ### --feedback-- -`Stand-up` refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +It refers to the type of meeting where members typically stand, promoting a quick and focused discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md index 612a259ff47..1e3c05652c1 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c8d3313c5fa61d25d4ff.md @@ -3,13 +3,9 @@ id: 6579c8d3313c5fa61d25d4ff title: Завдання 2 challengeType: 22 dashedName: task-2 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The modal verb `can` is used to ask for permission or to inquire about someone's ### --feedback-- -Bob uses `can` to politely ask if Sophie is ready to start speaking. +Bob uses this word to politely ask if Sophie is ready to start speaking. --- @@ -35,5 +31,52 @@ Bob uses `can` to politely ask if Sophie is ready to start speaking. ### --feedback-- -`Begin` is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +It is used here to start the meeting. Bob is asking Sophie if she can start talking about her work. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md index 650718a3ce6..ef2965a481e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579c96067f16bad8e7e6cba.md @@ -3,13 +3,9 @@ id: 6579c96067f16bad8e7e6cba title: Завдання 3 challengeType: 19 dashedName: task-3 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie to do? ## --answers-- -`To schedule a meeting for later` +To schedule a meeting for later ### --feedback-- @@ -31,11 +27,11 @@ Bob is not scheduling a new meeting; he is starting a current one and asking Sop --- -`To begin speaking at the stand-up meeting` +To begin speaking at the stand-up meeting --- -`To provide a detailed report` +To provide a detailed report ### --feedback-- @@ -43,7 +39,7 @@ In a stand-up meeting, detailed reports aren't usually given; it's more about br --- -`To leave the meeting` +To leave the meeting ### --feedback-- @@ -53,3 +49,51 @@ Bob is actually asking Sophie to start talking, not to leave. 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start our stand-up meeting. Sophie, can you begin?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.86 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md index ea41a7b460b..b3e5b8222ca 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cee11b0bd1cc8bf20829.md @@ -3,13 +3,9 @@ id: 6579cee11b0bd1cc8bf20829 title: Завдання 4 challengeType: 22 dashedName: task-4 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -`Could` is used here to politely express a need for help, suggesting possibility rather than demand. +It is used here to politely express a need for help, suggesting possibility rather than demand. --- @@ -35,7 +31,52 @@ In this sentence, Sophie uses the modal verb `could` to make a polite request fo ### --feedback-- -Coding refers to writing and working with computer code, which is the issue Sophie needs help with. - +It refers to writing and working with computer code, which is the issue Sophie needs help with. +# --scene-- +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md index 4fd1b1015ea..9bc4e893852 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf3ada08bdcfd5eae689.md @@ -3,13 +3,9 @@ id: 6579cf3ada08bdcfd5eae689 title: Завдання 5 challengeType: 19 dashedName: task-5 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What is Sophie asking for in her conversation with Bob? ## --answers-- -`She's asking for help with a coding problem` +She's asking for help with a coding problem --- -`She wants Bob to solve the problem for her` +She wants Bob to solve the problem for her ### --feedback-- @@ -35,7 +31,7 @@ Sophie is asking for help, not necessarily for Bob to solve it entirely on his o --- -`She is offering to help Bob with a problem` +She is offering to help Bob with a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is the one requesting assistance, not offering it. --- -`She's discussing a future project` +She's discussing a future project ### --feedback-- @@ -52,3 +48,51 @@ Sophie's request is about a current coding issue she's facing, not a future proj ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 4.9, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.68, + "dialogue": { + "text": "Sure, Bob. I could use some help with the coding problem.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.18 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md index f126740a3dc..12ff132d34b 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cf81a9cec6d21f872959.md @@ -3,13 +3,9 @@ id: 6579cf81a9cec6d21f872959 title: Завдання 6 challengeType: 22 dashedName: task-6 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -`Been` is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. +It is part of the present perfect continuous tense, indicating ongoing action in the past leading up to now. --- @@ -35,7 +31,7 @@ The phrase `a fresh pair of eyes` is an idiomatic expression meaning to have som ### --feedback-- -Sophie uses `may` to suggest that she might need help, showing that she is considering it as a possibility. +Sophie uses this word to suggest that she might need help, showing that she is considering it as a possibility. --- @@ -43,5 +39,52 @@ Sophie uses `may` to suggest that she might need help, showing that she is consi ### --feedback-- -`A fresh pair of eyes` means someone new to look at the problem and offer a different view. +It's part of an expression meaning someone new to look at the problem and offer a different view. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md index 19877341fe0..679883b46bc 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579cfc55663f6d40c4a65e1.md @@ -3,13 +3,9 @@ id: 6579cfc55663f6d40c4a65e1 title: Завдання 7 challengeType: 19 dashedName: task-7 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Sophie imply about her work on the coding problem? ## --answers-- -`She just started working on it` +She just started working on it ### --feedback-- @@ -31,7 +27,7 @@ Sophie indicates she has been working on it for a longer period, not just starte --- -`She finished the problem recently` +She finished the problem recently ### --feedback-- @@ -39,11 +35,11 @@ Sophie is still working on the issue and hasn't completed it yet. --- -`She has been working on it for a significant amount of time` +She has been working on it for a significant amount of time --- -`She worked on it a long time ago` +She worked on it a long time ago ### --feedback-- @@ -52,3 +48,51 @@ Sophie's use of `been working` suggests ongoing work, not something done long ag ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 9.48 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been working on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md index ee0f731eac6..d5ad96cdc0c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d002683211d5c7d13ef3.md @@ -3,13 +3,9 @@ id: 6579d002683211d5c7d13ef3 title: Завдання 8 challengeType: 19 dashedName: task-8 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie implying about her coding problem? ## --answers-- -`She is confident about solving it alone` +She is confident about solving it alone ### --feedback-- @@ -31,11 +27,11 @@ Sophie's statement suggests she wants help, not that she's confident in solving --- -`She needs someone else's perspective to solve it` +She needs someone else's perspective to solve it --- -`The code is perfect and needs no changes` +The code is perfect and needs no changes ### --feedback-- @@ -43,7 +39,7 @@ Asking for a fresh pair of eyes implies she thinks the code could benefit from c --- -`The code is too complicated for her to understand` +The code is too complicated for her to understand ### --feedback-- @@ -52,3 +48,51 @@ Sophie doesn't imply the code is beyond her understanding, just that she needs a ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 7.98, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.02, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.52 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md index e7aa99f92c7..c7c2f7a8bf2 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d035f49339d7aa16ec74.md @@ -3,13 +3,9 @@ id: 6579d035f49339d7aa16ec74 title: Завдання 9 challengeType: 22 dashedName: task-9 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`At` is used to point to a specific item or issue, in this case, the code. +It sis used to point to a specific item or issue, in this case, the code. --- @@ -35,5 +31,52 @@ Prepositions like `at` and `after` are important in setting the context of time ### --feedback-- -`After` sets the time for the action, indicating it should happen following the meeting. +It sets the time for the action, indicating it should happen following the meeting. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md index 11d6362cc51..52144fbc782 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d06801111dd95231e7e5.md @@ -3,13 +3,9 @@ id: 6579d06801111dd95231e7e5 title: Завдання 10 challengeType: 19 dashedName: task-10 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie asking Bob to do? ## --answers-- -`To help her during the meeting` +To help her during the meeting ### --feedback-- @@ -31,7 +27,7 @@ Sophie specifically asks for help after the meeting, not during it. --- -`To review the code immediately` +To review the code immediately ### --feedback-- @@ -39,11 +35,11 @@ She asks for help after the meeting, implying not right away but soon after. --- -`To take a look at her code after the meeting` +To take a look at her code after the meeting --- -`To solve her coding problem for her` +To solve her coding problem for her ### --feedback-- @@ -52,3 +48,51 @@ Sophie requests a review of her code, not necessarily for Bob to solve the probl ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 12.38, + "finishTimestamp": 14.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.72, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.22 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md index 2e417174188..3e573aed9d3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d40e7729a7e393cfcdd3.md @@ -3,13 +3,9 @@ id: 6579d40e7729a7e393cfcdd3 title: Завдання 11 challengeType: 22 dashedName: task-11 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ## --sentence-- -`_ . I _ help you with that.` +`_ . I can _ help you with that.` ## --blanks-- @@ -27,7 +23,7 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Absolutely` is a strong affirmation, like saying `yes` with more emphasis. +It is a strong affirmation, like saying `yes` with more emphasis. --- @@ -35,5 +31,52 @@ The words `absolutely` and `definitely` strongly emphasize certainty and assuran ### --feedback-- -`Definitely` shows high assurance, indicating Bob is certain he can help. +It shows high assurance, indicating Bob is certain he can help. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md index 5998ea70554..cb89d3506b8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d44bd49d1ae58c2603d4.md @@ -3,13 +3,9 @@ id: 6579d44bd49d1ae58c2603d4 title: Завдання 12 challengeType: 19 dashedName: task-12 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ How does Bob respond to Sophie's request for help? ## --answers-- -`He refuses to help her` +He refuses to help her ### --feedback-- @@ -31,7 +27,7 @@ Bob's response is the opposite; he strongly affirms his willingness to help. --- -`He agrees to help, but seems unsure` +He agrees to help, but seems unsure ### --feedback-- @@ -39,7 +35,7 @@ Bob's use of `absolutely` and `definitely` indicates strong certainty, not uncer --- -`He says he will try to help later` +He says he will try to help later ### --feedback-- @@ -47,8 +43,56 @@ Bob confidently agrees to help, rather than just trying to help later. --- -`He confidently agrees to help her` +He confidently agrees to help her ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.72, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.22 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md index de908953f21..7b270824572 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d49319613ee79fe12f7d.md @@ -3,13 +3,9 @@ id: 6579d49319613ee79fe12f7d title: Завдання 13 challengeType: 22 dashedName: task-13 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -`Just` here means to do something simple and straightforward – in this case, sharing the code. +It means to do something simple and straightforward – in this case, sharing the code. --- @@ -35,5 +31,52 @@ The word `just` in this context is used to simplify an action, suggesting it's a ### --feedback-- -To `check it out` means to examine or review something, here referring to Bob looking at the code. +It's part of a phrase meaning to examine or review something, here referring to Bob looking at the code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 17.1, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.26, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.76 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md index fcdf39a2d28..9818e3b0f3d 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4ca0578b4e95f1df60e.md @@ -3,13 +3,9 @@ id: 6579d4ca0578b4e95f1df60e title: Завдання 14 challengeType: 19 dashedName: task-14 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie need to do to receive Bob's help? ## --answers-- -`She needs to share the code with him` +She needs to share the code with him --- -`She must solve part of the problem herself` +She must solve part of the problem herself ### --feedback-- @@ -35,7 +31,7 @@ Bob doesn't ask Sophie to solve it herself; he just wants her to share the code. --- -`She should wait until the next meeting` +She should wait until the next meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob’s offer to help is immediate, contingent on Sophie sharing the code, not w --- -`She has to write a report about the issue` +She has to write a report about the issue ### --feedback-- @@ -52,3 +48,51 @@ Bob's condition is to share the code, not to write a report about the issue. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 14.56, + "finishTimestamp": 19.36 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.8, + "dialogue": { + "text": "Absolutely. I can definitely help you with that. Just share the code with me, and I'll check it out.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.3 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md index 8aa64781005..613b79c39d8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d4f3afd265eb0db874f7.md @@ -3,13 +3,9 @@ id: 6579d4f3afd265eb0db874f7 title: Завдання 15 challengeType: 22 dashedName: task-15 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Might` indicates that Bob is considering or thinking about different ideas but is not certain. +It indicates that Bob is considering or thinking about different ideas but is not certain. --- @@ -35,7 +31,7 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -`Approach` here refers to the methods or ways Bob is thinking of to solve the coding issue. +This word refers to the methods or ways Bob is thinking of to solve the coding issue. --- @@ -43,6 +39,53 @@ In this sentence, Bob uses `might` to express possibility. The word `approach` m ### --feedback-- -Bob is politely asking Sophie if she would be okay with him calling her later about the issue. +Bob is politely asking Sophie if she would be okay with him calling her later about the issue. This word is capitalized. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md index 41b29b53c52..cea29e174de 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d539b1e5c2ec64484e49.md @@ -3,13 +3,9 @@ id: 6579d539b1e5c2ec64484e49 title: Завдання 16 challengeType: 19 dashedName: task-16 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob imply about the coding problem? ## --answers-- -`He is certain he can solve it right away` +He is certain he can solve it right away ### --feedback-- @@ -31,11 +27,11 @@ Bob suggests possibility with `might`, indicating he's not entirely certain abou --- -`He has some possible ideas to solve it` +He has some possible ideas to solve it --- -`He needs more information before thinking of solutions` +He needs more information before thinking of solutions ### --feedback-- @@ -43,7 +39,7 @@ Bob already has some ideas; he doesn't mention needing more information first. --- -`He doesn't think the problem can be solved` +He doesn't think the problem can be solved ### --feedback-- @@ -52,3 +48,51 @@ Bob’s statement implies he believes there are possible solutions, not that it' ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 19.66, + "finishTimestamp": 22.26 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md index ffbb2108cf8..4ee9efe660d 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d56623c2d8ee0f2bea87.md @@ -3,13 +3,9 @@ id: 6579d56623c2d8ee0f2bea87 title: Завдання 17 challengeType: 19 dashedName: task-17 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking Sophie? ## --answers-- -`If she will call him later` +If she will call him later ### --feedback-- @@ -31,7 +27,7 @@ Bob is offering to make the call himself, not asking Sophie to call him. --- -`To schedule a meeting right away` +To schedule a meeting right away ### --feedback-- @@ -39,7 +35,7 @@ Bob's question is about calling later, not scheduling an immediate meeting. --- -`For her opinion about the meeting` +For her opinion about the meeting ### --feedback-- @@ -47,8 +43,56 @@ Bob's request is specific to calling Sophie later, not about her opinion on the --- -`Permission to call her later` +Permission to call her later ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 22.48, + "finishTimestamp": 23.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.26, + "dialogue": { + "text": "Mind if I call you later?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.76 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md index bb377d8a21a..15b2cfbeb7b 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d58e434920ef874f2502.md @@ -3,7 +3,6 @@ id: 6579d58e434920ef874f2502 title: Завдання 18 challengeType: 19 dashedName: task-18 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -18,19 +17,19 @@ What does `not at all` mean in simple conversations? ## --answers-- -`Yes, I agree` +It means you agree with what was said ### --feedback-- -'Not at all' is used for saying 'no' or 'it was no problem,' not for agreeing. +`Not at all` is used for saying `no` or `it was not a problem`, not for agreeing. --- -`No problem or a strong no` +It means you really don't want something or that you are ok with what was said --- -`I don't understand` +It means you don't understand what the other person said ### --feedback-- @@ -38,13 +37,12 @@ What does `not at all` mean in simple conversations? --- -`Please repeat` +It means you'd like the person to repeat what they said ### --feedback-- -This phrase is not about asking for repetition, but about saying 'no problem' or 'no.' +This phrase is not about asking for repetition, but about saying `no problem` or simply `no, I don't agree`. ## --video-solution-- 2 - diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md index 24b50f6dc6a..66fe86d3f80 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d62a28ab37f24f6ea8f9.md @@ -3,7 +3,6 @@ id: 6579d62a28ab37f24f6ea8f9 title: Завдання 19 challengeType: 19 dashedName: task-19 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- # --description-- @@ -21,7 +20,7 @@ What does `would` express in a sentence? ## --answers-- -`A command or order` +A command or order ### --feedback-- @@ -29,7 +28,7 @@ What does `would` express in a sentence? --- -`A past action` +A past action ### --feedback-- @@ -37,11 +36,11 @@ What does `would` express in a sentence? --- -`A possible action or a polite request` +A possible action or a polite request --- -`Immediate future plans` +Immediate future plans ### --feedback-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md index 5faddbb9fa9..b7c1061f701 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d67a4c6a3bf5d55ce3fd.md @@ -3,23 +3,19 @@ id: 6579d67a4c6a3bf5d55ce3fd title: Завдання 20 challengeType: 19 dashedName: task-20 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -In spoken English, `I’d` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I’d go to the park if it stops raining`, or `I’d like to order a pizza.` +In spoken English, `I'd` is a contraction of `I would`, used to make speech more fluid and conversational. It's often used to express politeness, preference, or hypothetical situations. For example, `I'd go to the park if it stops raining`, or `I'd like to order a pizza.` # --question-- ## --text-- -What does `I’d` express in Sophie's sentence? +What does `I'd` express in Sophie's sentence? ## --answers-- @@ -27,7 +23,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -`I’d` is not the same as `I do`. It’s a contraction for `I would`, indicating preference or politeness. +`I'd` is not the same as `I do`. It's a contraction for `I would`, indicating preference or politeness. --- @@ -35,7 +31,7 @@ What does `I’d` express in Sophie's sentence? ### --feedback-- -Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. +Although `I'd` can sometimes mean `I had`, in this case, it means `I would`. --- @@ -47,8 +43,56 @@ Although `I’d` can sometimes mean `I had`, in this case, it means `I would`. ### --feedback-- -`I’d` is a contraction of `I would`, not `I will`. It’s used for polite or hypothetical expressions. +`I'd` is a contraction of `I would`, not `I will`. It's used for polite or hypothetical expressions. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md index 2b9ef6a7da0..fe838f051a0 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d7f5a745c0fac805d356.md @@ -3,13 +3,9 @@ id: 6579d7f5a745c0fac805d356 title: Завдання 21 challengeType: 19 dashedName: task-21 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,32 +19,80 @@ What is Sophie expressing in her response to Bob? ## --answers-- -`She is happy to receive Bob's help and values his opinion` +She is happy to receive Bob's help and values his opinion --- -`She is declining Bob's offer to help` +She is declining Bob's offer to help ### --feedback-- -Sophie's response `I’d appreciate your input` shows she welcomes Bob's help, not declines it. +Sophie's response `I'd appreciate your input` shows she welcomes Bob's help, not declines it. --- -`She is unsure about Bob's ability to help` +She is unsure about Bob's ability to help ### --feedback-- -`I’d appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. +`I'd appreciate your input` implies she trusts and values Bob's help, showing no uncertainty. --- -`She is asking Bob for a favor unrelated to work` +She is asking Bob for a favor unrelated to work ### --feedback-- -Sophie’s statement is specifically about appreciating Bob's input on her work problem. +Sophie's statement is specifically about appreciating Bob's input on her work problem. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 24.32, + "finishTimestamp": 26.22 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.9, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.4 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md index 7d18f6945fe..c59277efa9c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d827ebd50afcacb829fe.md @@ -3,12 +3,9 @@ id: 6579d827ebd50afcacb829fe title: Завдання 22 challengeType: 19 dashedName: task-22 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Bob imply with his statement? ## --answers-- -`He wants to change the topic of the meeting` +He wants to change the topic of the meeting ### --feedback-- @@ -31,11 +28,11 @@ Bob's statement is about contributing an idea, not changing the topic. --- -`He has an additional idea or suggestion to offer` +He has an additional idea or suggestion to offer --- -`He is not interested in Sophie's problem` +He is not interested in Sophie's problem ### --feedback-- @@ -43,7 +40,7 @@ Bob expresses interest in offering a suggestion, showing engagement with Sophie' --- -`He is asking for a break from the meeting` +He is asking for a break from the meeting ### --feedback-- @@ -52,3 +49,51 @@ Bob’s statement is about making a suggestion, not about taking a break from th ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 26.86, + "finishTimestamp": 29.04 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.18, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.68 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md index 238eabc59c8..fb956ca187b 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d84f48c9c2fe53b06de9.md @@ -3,13 +3,9 @@ id: 6579d84f48c9c2fe53b06de9 title: Завдання 23 challengeType: 22 dashedName: task-23 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The verb `provide` means to supply or give something needed. In professional set ### --feedback-- -To `provide` means to supply or give something needed, in this case, more information. +It means to supply or give something needed, in this case, more information. --- @@ -35,5 +31,52 @@ To `provide` means to supply or give something needed, in this case, more inform ### --feedback-- -`Details` refer to specific pieces of information about something, here about the coding problem. +These are specific pieces of information about something, here about the coding problem. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 31.54 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.2, + "dialogue": { + "text": "Could you provide more details about the problem?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.7 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md index 4f622123fd4..21c42daac07 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d86fee9092ffb268f962.md @@ -3,13 +3,9 @@ id: 6579d86fee9092ffb268f962 title: Завдання 24 challengeType: 22 dashedName: task-24 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Could you provide more details about the problem, so we can _ some _ solut ### --feedback-- -To `brainstorm` means to discuss and come up with various ideas, typically in a group. +It means to discuss and come up with various ideas, typically in a group. --- @@ -35,5 +31,52 @@ To `brainstorm` means to discuss and come up with various ideas, typically in a ### --feedback-- -`Potential` solutions are ideas that might be effective but are still under consideration. +It refers to ideas that might be effective but are still under consideration. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md index f089e29dc1d..5a0ab2722ed 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d89bc117c40111641200.md @@ -3,17 +3,13 @@ id: 6579d89bc117c40111641200 title: Завдання 25 challengeType: 19 dashedName: task-25 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. The word `postpone` means to delay or put off something to a later time. For example, `We will postpone the meeting until tomorrow` means the meeting is rescheduled for a future date. +Bob asks Sophie for more details to help brainstorm solutions, illustrating collaborative problem-solving. # --question-- @@ -23,7 +19,7 @@ Why does Bob want Sophie to provide more details about the problem? ## --answers-- -`To evaluate Sophie's performance` +To evaluate Sophie's performance ### --feedback-- @@ -31,11 +27,11 @@ Bob's goal is to brainstorm solutions, not to assess Sophie's work. --- -`To help brainstorm solutions during the review` +To help brainstorm solutions during the review --- -`To postpone addressing the issue until later` +To postpone addressing the issue until later ### --feedback-- @@ -43,7 +39,7 @@ Bob wants to actively work on solutions now, not postpone them. --- -`To report the issue to higher management` +To report the issue to higher management ### --feedback-- @@ -51,4 +47,52 @@ The request is focused on finding solutions within the team, not reporting to ma ## --video-solution-- -1 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 29.34, + "finishTimestamp": 34.66 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.32, + "dialogue": { + "text": "Could you provide more details about the problem so we can brainstorm some potential solutions during the review?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.82 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md index abd6ec34e2e..4e626356e1e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579d8d24bf33b02f22685ac.md @@ -3,13 +3,9 @@ id: 6579d8d24bf33b02f22685ac title: Завдання 26 challengeType: 19 dashedName: task-26 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What will Sophie prepare for the code review meeting? ## --answers-- -`A new coding project` +A new coding project ### --feedback-- @@ -31,11 +27,11 @@ Sophie is focused on preparing documentation for the current problem, not starti --- -`Some documentation about the problem` +Some documentation about the problem --- -`A list of questions for Bob` +A list of questions for Bob ### --feedback-- @@ -43,7 +39,7 @@ Sophie plans to prepare documentation, not a list of questions specifically for --- -`An analysis of their competitors` +An analysis of their competitors ### --feedback-- @@ -52,3 +48,51 @@ Sophie's focus is on the coding issue at hand, not analyzing competitors. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 35.04, + "finishTimestamp": 39.7 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.66, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.16 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md index 0b661663c2c..42d2704332e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db53194a7c0f617943ac.md @@ -3,13 +3,9 @@ id: 6579db53194a7c0f617943ac title: Завдання 27 challengeType: 22 dashedName: task-27 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -`To set up` means to arrange or plan something, here referring to scheduling a review time. +It means to arrange or plan something, here referring to scheduling a review time. --- @@ -35,5 +31,52 @@ The phrase `set up` means to arrange or schedule, often used in planning meeting ### --feedback-- -A `session` is a meeting or period planned for a specific purpose, such as reviewing code. +It is a meeting or period planned for a specific purpose, such as reviewing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md index 07fdfbfc000..79417ddcf0c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db734a2b8010c3e92ada.md @@ -3,17 +3,14 @@ id: 6579db734a2b8010c3e92ada title: Завдання 28 challengeType: 19 dashedName: task-28 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- -Bob suggests scheduling a time for the code review session. `To schedule` means to arrange or plan an event for a specific time. For instance, `we need to schedule our next meeting` means deciding on a time for the meeting. Understanding `schedule` is important for organizing work-related activities. +Listen to the audio and answer the question. # --question-- @@ -23,7 +20,7 @@ What is Bob proposing in his statement? ## --answers-- -`To immediately start the code review` +To immediately start the code review ### --feedback-- @@ -31,11 +28,11 @@ Bob proposes scheduling a time, not starting the review immediately. --- -`To schedule a specific time for the code review session` +To schedule a specific time for the code review session --- -`To cancel the code review session` +To cancel the code review session ### --feedback-- @@ -43,7 +40,7 @@ Bob's intention is to organize the session, not cancel it. --- -`To review the code by himself` +To review the code by himself ### --feedback-- @@ -53,3 +50,50 @@ Bob suggests a joint review session, not doing it alone. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 40.06, + "finishTimestamp": 42.68 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.62, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.12 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md index d433a993111..601896be0b4 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579db9c67d64e123b19c235.md @@ -3,13 +3,9 @@ id: 6579db9c67d64e123b19c235 title: Завдання 29 challengeType: 19 dashedName: task-29 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to find out with his question? ## --answers-- -`Sophie's opinion on the best code practices` +Sophie's opinion on the best code practices ### --feedback-- @@ -31,11 +27,11 @@ Bob is inquiring about timing, not code practices. --- -`The time that works best for Sophie for the review session` +The time that works best for Sophie for the review session --- -`If Sophie can lead the review session` +If Sophie can lead the review session ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about finding a suitable time, not about leadership roles. --- -`The details of Sophie's coding problem` +The details of Sophie's coding problem ### --feedback-- @@ -51,4 +47,52 @@ Bob is asking about Sophie's availability, not the details of her coding issue. ## --video-solution-- -4 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 42.82, + "finishTimestamp": 44.02 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.2, + "dialogue": { + "text": "When is best for you?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 2.7 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md index d35266bba56..0325d2fba4f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbc2c1fc601436f2676b.md @@ -3,13 +3,9 @@ id: 6579dbc2c1fc601436f2676b title: Завдання 30 challengeType: 22 dashedName: task-30 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ## --sentence-- -`I’m sure we’ll _ some valuable _ from our discussion.` +`I'm sure we'll _ some valuable _ from our discussion.` ## --blanks-- @@ -27,7 +23,7 @@ Bob: "I’m sure we’ll _ some valuable _ from our discussion." ### --feedback-- -To `gain` is to acquire or obtain, here referring to acquiring understanding or knowledge. +It means to acquire or obtain, here referring to acquiring understanding or knowledge. --- @@ -35,5 +31,52 @@ To `gain` is to acquire or obtain, here referring to acquiring understanding or ### --feedback-- -`Insights` are deep understandings or realizations, especially important ones from a discussion. +These are deep understandings or realizations, especially important ones from a discussion. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md index 726de7badda..6b8a3a6f641 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dbf6a3e8a5161a592169.md @@ -3,13 +3,9 @@ id: 6579dbf6a3e8a5161a592169 title: Завдання 31 challengeType: 19 dashedName: task-31 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob anticipate from the upcoming discussion? ## --answers-- -`He expects the discussion to be brief and straightforward` +He expects the discussion to be brief and straightforward ### --feedback-- @@ -31,7 +27,7 @@ Bob's statement suggests he expects valuable insights, not necessarily brevity. --- -`He believes they will find solutions to all problems` +He believes they will find solutions to all problems ### --feedback-- @@ -39,16 +35,64 @@ While optimistic, Bob specifically mentions gaining insights, not solving all pr --- -`He is confident they will gain important understanding` +He is confident they will gain important understanding --- -`He is unsure about the usefulness of the discussion` +He is unsure about the usefulness of the discussion ### --feedback-- -Bob’s statement `I’m sure` shows confidence in the usefulness of the discussion. +Bob’s statement `I'm sure` shows confidence in the usefulness of the discussion. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1, + "startTimestamp": 44.38, + "finishTimestamp": 47.18 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 3.8, + "dialogue": { + "text": "I'm sure we'll gain some valuable insights from our discussion.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.3 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md index 2edd42cd116..f2ed22dcad2 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dc4332b86017e39b9c03.md @@ -3,13 +3,9 @@ id: 6579dc4332b86017e39b9c03 title: Завдання 32 challengeType: 22 dashedName: task-32 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -29,7 +25,7 @@ This challenge combines key vocabulary and concepts from the entire dialogue bet ### --feedback-- -A `stand-up` session is a quick meeting where team members discuss their progress. +Such session is a quick meeting where team members discuss their progress. --- @@ -37,7 +33,7 @@ A `stand-up` session is a quick meeting where team members discuss their progres ### --feedback-- -Sophie needed help with a coding problem, referring to computer programming. +Sophie needed help with a problem related to computer programming. --- @@ -45,7 +41,7 @@ Sophie needed help with a coding problem, referring to computer programming. ### --feedback-- -Bob suggested he could provide, or give, ideas to solve the problem. +Bob suggested he could offer, or give, ideas to solve the problem. --- @@ -53,7 +49,7 @@ Bob suggested he could provide, or give, ideas to solve the problem. ### --feedback-- -Reviewing means examining or looking over something, in this case, the code. +It means examining or looking over something, in this case, the code. --- @@ -61,7 +57,7 @@ Reviewing means examining or looking over something, in this case, the code. ### --feedback-- -To `gain` means to acquire, suggesting they would obtain insights from the review. +It means to acquire, suggesting they would obtain insights from the review. --- @@ -69,5 +65,168 @@ To `gain` means to acquire, suggesting they would obtain insights from the revie ### --feedback-- -A `session` refers to a meeting or period devoted to a specific activity. +It refers to a meeting or period devoted to a specific activity. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.36, + "dialogue": { + "text": "Good morning, everyone. Let's start with our stand-up meeting. Sophie, can you begin?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.1, + "finishTime": 8.58, + "dialogue": { + "text": "Sure, Bob. I could use some help with a coding problem.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.98, + "finishTime": 13, + "dialogue": { + "text": "I've been working on it for a while, and I may need a fresh pair of eyes to look at the code.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 13.38, + "finishTime": 14.9, + "dialogue": { + "text": "Could you take a look at it after the meeting?", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 15.86, + "finishTime": 18.08, + "dialogue": { + "text": "Absolutely. I can definitely help you with that.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.3, + "finishTime": 20.36, + "dialogue": { + "text": "Just share the code with me, and I'll check it out.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 20.66, + "finishTime": 24.74, + "dialogue": { + "text": "I might have a few ideas on how to approach this issue. Mind if I call you later?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 25.32, + "finishTime": 27.22, + "dialogue": { + "text": "Not at all. I'd appreciate your input.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 27.86, + "finishTime": 30.04, + "dialogue": { + "text": "I'd like to suggest something as well.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 30.54, + "finishTime": 35.46, + "dialogue": { + "text": "Could you provide more details about the problem, so we can brainstorm some potential solutions during the review?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 36.24, + "finishTime": 40.5, + "dialogue": { + "text": "Great suggestion. I'll prepare some documentation, and we can discuss it during the code review.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 41.26, + "finishTime": 43.68, + "dialogue": { + "text": "Excellent. Let's set up a time for our code review session.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 44.02, + "finishTime": 48.18, + "dialogue": { + "text": "When is best for you? I'm sure we'll gain some valuable insights from our discussion.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 48.68 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 49.18 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md index 0797a3ced09..10ae698c335 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dce8bc44981add67eda9.md @@ -1,15 +1,151 @@ --- id: 6579dce8bc44981add67eda9 -title: "Dialogue 2: Asking and offering help on a meeting" +title: "Dialogue 2: Asking and Offering Help on a Meeting" challengeType: 21 dashedName: dialogue-2-asking-and-offering-help-on-a-meeting -videoId: nLDychdBwUg --- # --description-- -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Перегляньте відео + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning, team. Let's start our stand-up meeting. What's on your plate today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 8.38, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 8.6, + "finishTime": 12.16, + "dialogue": { + "text": "I've been stuck on it for a while. Would you mind taking a look at my code?", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 12.52, + "finishTime": 14.34, + "dialogue": { + "text": "I think a fresh pair of eyes could help.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 15.7, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 16.32, + "finishTime": 18.28, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 18.28, + "finishTime": 23.72, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 23.72, + "finishTime": 25.72, + "dialogue": { + "text": "It could benefit the entire team.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 28.18, + "dialogue": { + "text": "That's a great idea. Let's arrange this.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 28.16, + "finishTime": 29.92, + "dialogue": { + "text": "We can definitely learn from each other.", + "align": "right" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 30.42 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 30.92 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md index fc355489e1a..1971d8329e8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd420cf6b81db05470f4.md @@ -3,13 +3,9 @@ id: 6579dd420cf6b81db05470f4 title: Завдання 33 challengeType: 22 dashedName: task-33 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`Our` indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. +It indicates something that belongs to or involves the speaker and the group, here referring to the team's meeting. --- @@ -35,5 +31,52 @@ The phrase `on your plate` is an idiomatic expression meaning the tasks or respo ### --feedback-- -`On your plate` refers to the tasks or responsibilities that someone is currently dealing with. +It refers to the tasks or responsibilities that someone is currently dealing with. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md index ee12cf06060..9b4bb0b63c7 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd5f2f35b11f3dcd9702.md @@ -3,13 +3,9 @@ id: 6579dd5f2f35b11f3dcd9702 title: Завдання 34 challengeType: 19 dashedName: task-34 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob asking the team with `What's on your plate today?` ## --answers-- -`Their plans for lunch` +Their plans for lunch ### --feedback-- @@ -31,11 +27,11 @@ What is Bob asking the team with `What's on your plate today?` --- -`The tasks or responsibilities they are currently handling` +The tasks or responsibilities they are currently handling --- -`Their opinion on the meeting agenda` +Their opinion on the meeting agenda ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about their current tasks, not their opinions on the meeting a --- -`If they have completed their work` +If they have completed their work ### --feedback-- @@ -52,3 +48,51 @@ Bob is asking about current tasks, not whether work has been completed. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.08 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.58 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md index fc66b221854..3d49c3fa67c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd80bdd49220560f26ad.md @@ -3,13 +3,9 @@ id: 6579dd80bdd49220560f26ad title: Завдання 35 challengeType: 19 dashedName: task-35 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? ## --answers-- -`She wants to start discussing a coding problem` +She wants to start discussing a coding problem --- -`She is asking for a break from the meeting` +She is asking for a break from the meeting ### --feedback-- @@ -35,7 +31,7 @@ What does Sophie intend to do by saying `I'd like to bring up a coding issue`? --- -`She is offering a solution to a problem` +She is offering a solution to a problem ### --feedback-- @@ -43,7 +39,7 @@ Sophie is introducing an issue for discussion, not offering a solution. --- -`She is complimenting Bob on his coding skills` +She is complimenting Bob on his coding skills ### --feedback-- @@ -52,3 +48,51 @@ Sophie is introducing an issue for discussion, not offering a solution. ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.58, + "finishTimestamp": 7.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.5 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md index 73d9d4d4b5d..165632fec68 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dd9846f35921af1ffe1c.md @@ -3,12 +3,9 @@ id: 6579dd9846f35921af1ffe1c title: Завдання 36 challengeType: 19 dashedName: task-36 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -23,7 +20,7 @@ What does Sophie mean by saying `I've been stuck on it for a while`? ## --answers-- -`She recently started working on the issue` +She recently started working on the issue ### --feedback-- @@ -31,11 +28,11 @@ The phrase `I've been stuck` suggests an ongoing issue, not something recent. --- -`She has had difficulty with the issue for some time` +She has had difficulty with the issue for some time --- -`She completed the task successfully` +She completed the task successfully ### --feedback-- @@ -43,7 +40,7 @@ Being `stuck` implies ongoing difficulty, not successful completion. --- -`She is waiting for someone else to start it` +She is waiting for someone else to start it ### --feedback-- @@ -51,4 +48,52 @@ Being `stuck` implies ongoing difficulty, not successful completion. ## --video-solution-- -3 +2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 7.6, + "finishTimestamp": 9.1 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.5, + "dialogue": { + "text": "I've been stuck on it for a while.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md index d53c3734555..7333cdef1c2 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddb17d88c12323aae5b5.md @@ -3,13 +3,9 @@ id: 6579ddb17d88c12323aae5b5 title: Завдання 37 challengeType: 22 dashedName: task-37 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,11 +19,11 @@ Understanding the difference between `would` and `could` is important in English ## --blanks-- -`would` +`Would` ### --feedback-- -`Would` in `Would you mind...` is used to make a polite request. +It is used to make a polite request. --- @@ -35,4 +31,52 @@ Understanding the difference between `would` and `could` is important in English ### --feedback-- -`Could` suggests that a fresh perspective might be beneficial. +It suggests that a fresh perspective might be beneficial. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 9.1, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.24, + "dialogue": { + "text": "Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.74 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md index 813c6e2b7df..8db48ad5a2e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579ddc94db61d2463022da3.md @@ -3,17 +3,13 @@ id: 6579ddc94db61d2463022da3 title: Завдання 38 challengeType: 19 dashedName: task-38 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's line encapsulates a polite request for assistance, her ongoing challenge, and her belief that another perspective could be beneficial. Understanding such professional communication is essential in collaborative environments. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie communicating in her statement? ## --answers-- -`She is confident about solving the coding issue alone` +She is confident about solving the coding issue alone ### --feedback-- @@ -31,7 +27,7 @@ Sophie's request for help indicates she's seeking assistance, not confidence in --- -`She is asking for Bob's opinion on a different project` +She is asking for Bob's opinion on a different project ### --feedback-- @@ -39,11 +35,11 @@ Sophie specifically mentions a coding issue she's been working on, not a differe --- -`She requests Bob’s help on a coding issue she's struggling with` +She requests Bob’s help on a coding issue she's struggling with --- -`She is announcing the completion of her coding task` +She is announcing the completion of her coding task ### --feedback-- @@ -52,3 +48,51 @@ Sophie mentions being stuck, implying the task is not yet completed. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 4.78, + "finishTimestamp": 13.34 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 9.56, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while. Would you mind taking a look at my code? I think a fresh pair of eyes could help.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.06 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md index c4f1c7d85ae..9c818b4c0cf 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dde808b24525c95ec2a3.md @@ -3,17 +3,13 @@ id: 6579dde808b24525c95ec2a3 title: Завдання 39 challengeType: 22 dashedName: task-39 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -`I’d` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I’d love to join the meeting` shows a positive response to an invitation. +`I'd` is a contraction for `I would`, often used in spoken English to make sentences sound more natural and conversational. It's commonly used to express willingness or polite agreement. For example, `I'd love to join the meeting` shows a positive response to an invitation. # --fillInTheBlank-- @@ -23,9 +19,56 @@ Bob: "Of course. _ be happy to help." ## --blanks-- -`I’d` +`I'd` ### --feedback-- -`I’d` here means `I would`, showing Bob's willingness to assist. +It shows Bob's willingness to assist. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 13.34, + "finishTimestamp": 15.32 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.98, + "dialogue": { + "text": "Of course. I'd be happy to help.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.48 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md index 859a6dc853f..1ed536d6b31 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de040244fb274179f001.md @@ -3,13 +3,9 @@ id: 6579de040244fb274179f001 title: Завдання 40 challengeType: 22 dashedName: task-40 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Just _ the code with me, and I'll _ in." ### --feedback-- -To `share` means to give someone access to something, here referring to the code. +It means to give someone access to something, here referring to the code. --- @@ -35,5 +31,52 @@ To `share` means to give someone access to something, here referring to the code ### --feedback-- -`Dive in` suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +It suggests starting something with enthusiasm, indicating Bob’s readiness to examine the code closely. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md index 83553bd018c..31033cb60e5 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de1f43444d2869022c6d.md @@ -3,13 +3,9 @@ id: 6579de1f43444d2869022c6d title: Завдання 41 challengeType: 19 dashedName: task-41 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob indicating with his statement? ## --answers-- -`He will quickly glance at the code later` +He will quickly glance at the code later ### --feedback-- @@ -31,7 +27,7 @@ What is Bob indicating with his statement? --- -`He wants Sophie to explain the code first` +He wants Sophie to explain the code first ### --feedback-- @@ -39,11 +35,11 @@ Bob is asking to see the code, not for an explanation. --- -`He is ready to look at the code in detail right away` +He is ready to look at the code in detail right away --- -`He needs more details before looking at the code` +He needs more details before looking at the code ### --feedback-- @@ -51,4 +47,52 @@ Bob seems ready to start without needing more details first. ## --video-solution-- -1 +3 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 15.32, + "finishTimestamp": 17.28 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 2.96, + "dialogue": { + "text": "Just share the code with me, and I'll dive in.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 3.46 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md index 2a0eb389e7f..df4a36b7234 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de444ec34929dbc6c2ab.md @@ -3,13 +3,9 @@ id: 6579de444ec34929dbc6c2ab title: Завдання 42 challengeType: 22 dashedName: task-42 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`Might` indicates a possibility or suggestion, here suggesting the idea of having a review session. +It indicates a possibility or suggestion, here suggesting the idea of having a review session. --- @@ -35,7 +31,7 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -`After` specifies a time following an event, in this case, suggesting the session will be post-meeting. +It specifies a time following an event, in this case, suggesting the session will be post-meeting. --- @@ -43,5 +39,52 @@ Bob: "We _ want to set up a short code review session _ the meeting to _ ideas a ### --feedback-- -To `exchange` in this context means to share and receive ideas and solutions during the session. +In this context, it means to share and receive ideas and solutions during the session. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md index 0e2e669ec43..83108d914a1 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de58f1da5a2b4c6ea741.md @@ -3,13 +3,9 @@ id: 6579de58f1da5a2b4c6ea741 title: Завдання 43 challengeType: 19 dashedName: task-43 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Bob suggesting in his statement? ## --answers-- -`To immediately start working on the code individually` +To immediately start working on the code individually ### --feedback-- @@ -31,7 +27,7 @@ Bob's suggestion is for a collaborative session, not individual work. --- -`To postpone discussing the coding issue` +To postpone discussing the coding issue ### --feedback-- @@ -39,7 +35,7 @@ Bob proposes a session after the meeting, not delaying the discussion. --- -`To cancel the code review session entirely` +To cancel the code review session entirely ### --feedback-- @@ -47,8 +43,56 @@ Bob's statement is about planning a session, not canceling it. --- -`To have a group session to share and discuss ideas and solutions` +To have a group session to share and discuss ideas and solutions ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 22.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.94 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md index 125773cec80..b855fd2c7d3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de73144df42cb2d373ef.md @@ -3,13 +3,9 @@ id: 6579de73144df42cb2d373ef title: Завдання 44 challengeType: 19 dashedName: task-44 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ Why does Bob say `It could benefit the entire team`? ## --answers-- -`He is unsure if the team will gain from the session` +He is unsure if the team will gain from the session ### --feedback-- @@ -31,11 +27,11 @@ Bob implies potential advantage, not uncertainty about the team gaining from it. --- -`He believes the session will be advantageous for the team` +He believes the session will be advantageous for the team --- -`He thinks the session is unnecessary for the team` +He thinks the session is unnecessary for the team ### --feedback-- @@ -43,7 +39,7 @@ Bob's statement suggests he sees value in the session for the team, not that it' --- -`He wants to cancel the session` +He wants to cancel the session ### --feedback-- @@ -52,3 +48,51 @@ Bob's use of `benefit` indicates a positive view of the session, not a desire to ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 17.28, + "finishTimestamp": 24.72 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 8.44, + "dialogue": { + "text": "We might want to set up a short code review session after the meeting to exchange ideas and solutions. It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 8.94 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md index 622d48e24bb..d67873453de 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579de90a68c532e08e96f02.md @@ -3,13 +3,9 @@ id: 6579de90a68c532e08e96f02 title: Завдання 45 challengeType: 22 dashedName: task-45 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "That's a great idea. Let's _ this. We can _ learn from each other." ### --feedback-- -To `arrange` means to plan or set up, here referring to organizing the code review session. +It means to plan or set up, here referring to organizing the code review session. --- @@ -35,5 +31,52 @@ To `arrange` means to plan or set up, here referring to organizing the code revi ### --feedback-- -`Definitely` emphasizes certainty, showing Sophie's strong agreement about learning from each other. +It emphasizes certainty, showing Sophie's strong agreement about learning from each other. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 25.24, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.68, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.18 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md index 15cb20b5a86..9b08b82c8e4 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df1646568c3268b93637.md @@ -3,13 +3,9 @@ id: 6579df1646568c3268b93637 title: Завдання 46 challengeType: 22 dashedName: task-46 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -`Bring up` means to start discussing a topic, here referring to Sophie's coding issue. +It means to start discussing a topic, here referring to Sophie's coding issue. --- @@ -35,7 +31,7 @@ This challenge encapsulates the key points from the dialogue between Bob and Sop ### --feedback-- -Being `stuck` implies facing difficulty, relating to Sophie's challenge with the coding issue. +It implies facing difficulty, relating to Sophie's challenge with the coding issue. --- @@ -43,7 +39,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -`Take a look` suggests examining or reviewing something closely. +It suggests examining or reviewing something closely. --- @@ -51,7 +47,7 @@ Being `stuck` implies facing difficulty, relating to Sophie's challenge with the ### --feedback-- -Discussing ideas implies having a conversation to share and explore thoughts. +It implies having a conversation to share and explore thoughts. --- @@ -59,7 +55,7 @@ Discussing ideas implies having a conversation to share and explore thoughts. ### --feedback-- -To `exchange` means to give and receive, here referring to sharing ideas and solutions. +It means to give and receive, here referring to sharing ideas and solutions. --- @@ -67,7 +63,7 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Could` indicates possibility or potential, here suggesting the benefit of learning from each other. +It indicates possibility or potential, here suggesting the benefit of learning from each other. --- @@ -75,4 +71,118 @@ To `exchange` means to give and receive, here referring to sharing ideas and sol ### --feedback-- -`Learn` means to acquire knowledge or skill, emphasizing the collaborative learning process. +It means to acquire knowledge or skill, emphasizing the collaborative learning process. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 28.92 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.08, + "dialogue": { + "text": "Good morning team. Let's start our stand-up meeting. What's on your plate today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.43 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 5.43 + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 14.34, + "dialogue": { + "text": "Good morning, Bob. I'd like to bring up a coding issue. I've been stuck on it for a while Would you mind taking a look at my code? I think a fresh pair of eyes could help", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 14.34 + }, + { + "character": "Bob", + "opacity": 1, + "startTime": 14.34 + }, + { + "character": "Bob", + "startTime": 14.34, + "finishTime": 25.72, + "dialogue": { + "text": "of course I'd be happy to help just share the code with me and I'll dive in We might want to set up a short code review session after the meeting to exchange ideas and solutions It could benefit the entire team.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 25.98 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 25.98 + }, + { + "character": "Sophie", + "startTime": 26.24, + "finishTime": 29.92, + "dialogue": { + "text": "That's a great idea. Let's arrange this we can definitely learn from each other", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 30.42 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md index 1b4b9f2d9f1..e83ced7559a 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579df5f24a43034dbe456f1.md @@ -1,15 +1,133 @@ --- id: 6579df5f24a43034dbe456f1 -title: "Dialogue 3: Improvement suggestions" +title: "Dialogue 3: Improvement Suggestions" challengeType: 21 -videoId: nLDychdBwUg dashedName: dialogue-3-improvement-suggestions --- # --description-- -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Перегляньте відео + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md index 43eba1570fd..0199694a5e0 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfac25b3e6370956a820.md @@ -3,13 +3,9 @@ id: 6579dfac25b3e6370956a820 title: Завдання 47 challengeType: 19 dashedName: task-47 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What does Bob want to know from Sophie? ## --answers-- -`Sophie's opinion on the meeting's agenda` +Sophie's opinion on the meeting's agenda ### --feedback-- @@ -31,11 +27,11 @@ Bob is asking about Sophie's tasks, not her opinion on the agenda. --- -`Sophie's tasks or plans for the day` +Sophie's tasks or plans for the day --- -`If Sophie is prepared for the meeting` +If Sophie is prepared for the meeting ### --feedback-- @@ -43,7 +39,7 @@ Bob's question is about Sophie's agenda, not her preparedness for the meeting. --- -`If Sophie needs any assistance with her work` +If Sophie needs any assistance with her work ### --feedback-- @@ -53,3 +49,50 @@ The question is about what Sophie plans to do, not about needing help. 2 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.74 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.24 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md index f1e0f403bf7..703be45759e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579dfd504a9ad385a3a4fd9.md @@ -3,13 +3,9 @@ id: 6579dfd504a9ad385a3a4fd9 title: Завдання 48 challengeType: 19 dashedName: task-48 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -23,7 +19,7 @@ What is Sophie communicating with her statement? ## --answers-- -`She is currently thinking of ideas to improve coding practices` +She is currently thinking of ideas to improve coding practices ### --feedback-- @@ -31,11 +27,11 @@ What is Sophie communicating with her statement? --- -`She previously thought of some ideas to improve coding practices` +She previously thought of some ideas to improve coding practices --- -`She needs help with understanding coding practices` +She needs help with understanding coding practices ### --feedback-- @@ -43,7 +39,7 @@ Sophie's statement is about her ideas for improvement, not needing help. --- -`She is asking for a break from coding practices` +She is asking for a break from coding practices ### --feedback-- @@ -53,3 +49,50 @@ Sophie is discussing her ideas for improvement, not requesting a break. 1 +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 5.22, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.16, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.66 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md index 0169436e54d..31f5ff3f7eb 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0385253cd3a7bd44902.md @@ -3,13 +3,9 @@ id: 6579e0385253cd3a7bd44902 title: Завдання 49 challengeType: 22 dashedName: task-49 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Sophie: "I would like to _ that we create coding _ to ensure _ across our projec ### --feedback-- -To `suggest` means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. +It means to propose an idea or plan, here referring to Sophie's idea about creating guidelines. --- @@ -35,7 +31,7 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Guidelines` refer to rules or instructions, in this case, for coding in projects. +They are to rules or instructions, in this case, for coding in projects. --- @@ -43,4 +39,52 @@ To `suggest` means to propose an idea or plan, here referring to Sophie's idea a ### --feedback-- -`Consistency` here refers to maintaining uniform standards or practices across projects. +It refers to maintaining uniform standards or practices across projects. + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.78 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 6.06, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.56 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md index 1b3441d9cca..94f9a559de3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e08f06692a3c176f3faa.md @@ -3,17 +3,13 @@ id: 6579e08f06692a3c176f3faa title: Завдання 50 challengeType: 19 dashedName: task-50 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie suggests creating coding guidelines as a means to improve the team's work. Understanding her reasoning helps in grasping the importance of standard practices in collaborative projects. +Listen to the dialogue and answer the question. # --question-- @@ -23,7 +19,7 @@ Why does Sophie want to create coding guidelines? ## --answers-- -`To make the coding process more challenging` +To make the coding process more challenging ### --feedback-- @@ -31,11 +27,11 @@ Sophie's intention is to improve, not complicate, the coding process. --- -`To ensure uniformity and standard quality in their projects` +To ensure uniformity and standard quality in their projects --- -`Because the current coding practices are too easy` +Because the current coding practices are too easy ### --feedback-- @@ -43,7 +39,7 @@ The suggestion is aimed at consistency, not the difficulty level of coding pract --- -`To reduce the number of projects they work on` +To reduce the number of projects they work on ### --feedback-- @@ -52,3 +48,51 @@ Her suggestion is about enhancing the quality of work, not reducing the workload ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 9.72, + "finishTimestamp": 14.58 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.86, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.36 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md index f1b64ada03b..a5726d19b39 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e0e6402c813da7e25ca2.md @@ -3,27 +3,23 @@ id: 6579e0e6402c813da7e25ca2 title: Завдання 51 challengeType: 19 dashedName: task-51 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -A `course of action` refers to a plan or a series of steps taken to achieve a particular outcome. For example, `Our course of action will be to first research, then implement changes` indicates a planned approach. Understanding this term is essential for grasping strategic planning in professional settings. +`Coding standards` are like rules for writing computer code. Think of it as agreeing on how to build a brick model, so everyone uses the same colors and steps. This makes it easier for everyone to understand and work together. # --question-- ## --text-- -What course of action does Sophie suggest? +What does Sophie suggest that the team do? ## --answers-- -`To stop using different programming languages` +To stop using different programming languages ### --feedback-- @@ -31,7 +27,7 @@ Sophie's suggestion is about setting standards, not stopping the use of language --- -`To immediately implement new coding guidelines` +To immediately implement new coding guidelines ### --feedback-- @@ -39,7 +35,7 @@ She suggests starting with defining standards, not immediate implementation. --- -`To hire more programmers for the project` +To hire more programmers for the project ### --feedback-- @@ -47,8 +43,56 @@ Her recommendation is about coding standards, not expanding the team. --- -`To begin by defining coding standards for various languages` +To begin by defining coding standards for various languages ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 15.12, + "finishTimestamp": 19.56 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.44, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 5.94 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md index 1ebfaad08d0..5de59c5d211 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e102b5a7223f0d0e9fc4.md @@ -3,13 +3,9 @@ id: 6579e102b5a7223f0d0e9fc4 title: Завдання 52 challengeType: 22 dashedName: task-52 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Agree` shows Bob's concurrence with Sophie's suggestion. +It shows Bob's concurrence with Sophie's suggestion. --- @@ -35,7 +31,7 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Clear` emphasizes the need for an understandable and precise guide. +It emphasizes the need for an understandable and precise guide. --- @@ -43,5 +39,52 @@ The word `each` refers to every one of a group of items, considered separately. ### --feedback-- -`Each` refers to every programming language they use, considered separately. +It refers to every programming language they use, considered separately. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 20.08, + "finishTimestamp": 23.6 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.52, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 5.02 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md index 41521a2e98f..97bd8cfef73 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e12834045640e90e58bd.md @@ -3,13 +3,9 @@ id: 6579e12834045640e90e58bd title: Завдання 53 challengeType: 22 dashedName: task-53 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -27,7 +23,7 @@ Bob: "Also, I would _ that we regularly review and update these _ as our project ### --feedback-- -To `advise` here means Bob is recommending regular updates to the guidelines. +It means Bob is recommending regular updates to the guidelines. --- @@ -35,7 +31,7 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Guidelines` refer to the proposed rules or instructions for coding practices. +These are the proposed rules or instructions for coding practices. --- @@ -43,5 +39,52 @@ To `advise` here means Bob is recommending regular updates to the guidelines. ### --feedback-- -`Evolve` suggests that the projects will change and develop over time, affecting the guidelines. +It suggests that the projects will change and develop over time, affecting the guidelines. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md index cc67aecc629..660f7f90251 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e13cd2c9ee424eb815df.md @@ -3,17 +3,13 @@ id: 6579e13cd2c9ee424eb815df title: Завдання 54 challengeType: 19 dashedName: task-54 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob's advice reflects a proactive approach to maintaining and improving coding practices. Understanding his recommendation helps in grasping the importance of adaptability and continuous improvement in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Bob's advice regarding the coding guidelines? ## --answers-- -`To follow the guidelines strictly without changes` +To follow the guidelines strictly without changes ### --feedback-- @@ -31,11 +27,11 @@ Bob advises regular reviews and updates, not strict adherence without changes. --- -`To regularly review and update the guidelines as needed` +To regularly review and update the guidelines as needed --- -`To create a new set of guidelines for each project` +To create a new set of guidelines for each project ### --feedback-- @@ -43,7 +39,7 @@ Bob suggests updating the existing guidelines, not creating new ones for each pr --- -`To ignore the guidelines for future projects` +To ignore the guidelines for future projects ### --feedback-- @@ -52,3 +48,51 @@ His advice is about regular updates, not ignoring the guidelines. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 23.88, + "finishTimestamp": 29.14 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 6.26, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects involve.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 6.76 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md index 284a92c4635..cd046ece6a6 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e153639adb43c017f3d3.md @@ -3,13 +3,9 @@ id: 6579e153639adb43c017f3d3 title: Завдання 55 challengeType: 22 dashedName: task-55 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- @@ -19,7 +15,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ## --sentence-- -`Yeah, consistency is essential. I’ll _ and start with _ those _ standards.` +`Yeah, consistency is essential. I'll go _ and start with _ those _ standards.` ## --blanks-- @@ -27,7 +23,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Go ahead` here means Sophie is ready to initiate the task of defining standards. +It means Sophie is ready to initiate the task of defining standards. --- @@ -35,7 +31,7 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Defining` refers to the process of establishing clear guidelines or rules. +It refers to the process of establishing clear guidelines or rules. --- @@ -43,5 +39,52 @@ Sophie: "Yeah, consistency is essential. I’ll _ and start with _ those _ stand ### --feedback-- -`Coding` standards refer to the specific rules or guidelines for writing code. +Such standards refer to the specific rules or guidelines for writing code. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md index 75e2d93c552..aef8fc6eee8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e17ff05c5d451c2e4f35.md @@ -3,17 +3,13 @@ id: 6579e17ff05c5d451c2e4f35 title: Завдання 56 challengeType: 19 dashedName: task-56 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Sophie's statement indicates her plan of action concerning coding standards. Understanding her statement helps in grasping the initiative and proactive approach in project management. +Listen to the audio and answer the question. # --question-- @@ -23,7 +19,7 @@ What is Sophie planning to do next? ## --answers-- -`To wait for further instructions about coding standards` +To wait for further instructions about coding standards ### --feedback-- @@ -31,11 +27,11 @@ Sophie’s statement shows she is ready to start working on the standards, not w --- -`To start working on defining coding standards` +To start working on defining coding standards --- -`To discuss the importance of consistency with the team` +To discuss the importance of consistency with the team ### --feedback-- @@ -43,7 +39,7 @@ While she acknowledges the importance of consistency, her plan is to start defin --- -`To leave the task of defining coding standards to someone else` +To leave the task of defining coding standards to someone else ### --feedback-- @@ -52,3 +48,51 @@ Sophie indicates her own readiness to undertake the task, not delegating it. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 29.14, + "finishTimestamp": 34.08 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.94, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.44 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md index 3cba9d6181e..a4f4d302bff 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e19be475334667ba4333.md @@ -3,12 +3,9 @@ id: 6579e19be475334667ba4333 title: Завдання 57 challengeType: 22 dashedName: task-57 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - # --description-- @@ -19,7 +16,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ## --sentence-- -`Great. I’m happy for you to _ that _ if that’s ok with you.` +`Great. I'm happy for you to _ the _ if that's ok with you.` ## --blanks-- @@ -27,7 +24,7 @@ Bob: "Great. I’m happy for you to _ that _ if that’s ok with you." ### --feedback-- -To `lead` in this context means taking charge of the task of defining coding standards. +In this context, it means taking charge of the task of defining coding standards. --- @@ -35,5 +32,52 @@ To `lead` in this context means taking charge of the task of defining coding sta ### --feedback-- -`Effort` here refers to the work involved in leading the development of coding standards. +Here, it refers to the work involved in leading the development of coding standards. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md index 8b3bc3e59c5..2267c24a02e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1b324902e47dae63c90.md @@ -3,27 +3,23 @@ id: 6579e1b324902e47dae63c90 title: Завдання 58 challengeType: 19 dashedName: task-58 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - + # --description-- -Bob is showing he agrees with Sophie's plan and is asking if she is okay with leading the task. Understanding this helps to know how team members support each other at work. +Listen to the audio and answer the question. # --question-- ## --text-- -What is Bob saying to Sophie? +What is Bob telling Sophie? ## --answers-- -`Bob is not sure if Sophie can do the task` +Bob is not sure if Sophie can do the task ### --feedback-- @@ -31,11 +27,11 @@ Bob sounds positive, not unsure about Sophie's work. --- -`Bob agrees and asks if Sophie is okay to do the task` +Bob agrees and asks if Sophie is okay to do the task --- -`Bob wants Sophie to give the task to someone else` +Bob wants Sophie to give the task to someone else ### --feedback-- @@ -43,7 +39,7 @@ Bob is not asking to change who does the task; he is happy with Sophie doing it. --- -`Bob is asking Sophie to stop working on the task` +Bob is asking Sophie to stop working on the task ### --feedback-- @@ -52,3 +48,51 @@ Bob's words show support, not asking her to stop. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1, + "startTimestamp": 34.1, + "finishTimestamp": 37.56 + } + }, + "commands": [ + { + "character": "Bob", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 4.46, + "dialogue": { + "text": "Great. I'm happy for you to lead the effort if that's okay with you.", + "align": "center" + } + }, + { + "character": "Bob", + "opacity": 0, + "startTime": 4.96 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md index c494e80bc47..0178852df5a 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/6579e1cd6c8b6248fa62ed48.md @@ -3,14 +3,9 @@ id: 6579e1cd6c8b6248fa62ed48 title: Завдання 59 challengeType: 22 dashedName: task-59 -audioPath: curriculum/js-music-player/We-Are-Going-to-Make-it.mp3 --- - - + # --description-- @@ -28,7 +23,7 @@ This challenge recaps the key points of the dialogue between Bob and Sophie. It ### --feedback-- -Sophie's `agenda` refers to her planned tasks or topics for the day. +It refers to the planned tasks or topics for the day. --- @@ -36,7 +31,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Bring up` means to start discussing a particular topic, in this case, coding practices. +It means to start discussing a particular topic, in this case, coding practices. --- @@ -44,7 +39,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -`Coding practices` refer to the methods and standards used in writing code. +These are the methods and standards used in writing code. --- @@ -52,7 +47,7 @@ Sophie's `agenda` refers to her planned tasks or topics for the day. ### --feedback-- -Bob showed agreement with Sophie's suggestion about coding guidelines. +It means Bob shows agreement with Sophie's suggestion about coding guidelines. Use the verb in the past. --- @@ -60,7 +55,7 @@ Bob showed agreement with Sophie's suggestion about coding guidelines. ### --feedback-- -A `style guide` refers to a set of standards for writing and designing code. +It refers to a set of standards for writing and designing code. --- @@ -68,15 +63,15 @@ A `style guide` refers to a set of standards for writing and designing code. ### --feedback-- -They emphasized the importance of keeping guidelines up-to-date. +It means how much something matters or how valuable it is. --- -`benefit` +`benefits` ### --feedback-- -The `benefit` refers to the positive outcome of maintaining clear coding standards. +It refers to the positive outcome of maintaining clear coding standards. Use the plural form. --- @@ -84,7 +79,7 @@ The `benefit` refers to the positive outcome of maintaining clear coding standar ### --feedback-- -To `lead` the task means to take charge of or oversee the activity. +It means to take charge of or oversee the activity. --- @@ -92,5 +87,123 @@ To `lead` the task means to take charge of or oversee the activity. ### --feedback-- -Bob's `support` indicates his encouragement and approval for Sophie leading the effort. +It indicates Bob's encouragement and approval for Sophie leading the effort. +# --scene-- + +```json +{ + "setup": { + "background": "company1-boardroom.png", + "characters": [ + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "6.2-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Bob", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Bob", + "startTime": 1, + "finishTime": 5.74, + "dialogue": { + "text": "Good morning, team. Let's get started with our meeting. Sophie, what's on your agenda today?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 6.42, + "finishTime": 10.18, + "dialogue": { + "text": "Good morning, everyone. I've had some ideas about improving our coding practices.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 10.72, + "finishTime": 15.58, + "dialogue": { + "text": "I would like to suggest that we create coding guidelines to ensure consistency across our projects.", + "align": "right" + } + }, + { + "character": "Sophie", + "startTime": 16.32, + "finishTime": 20.56, + "dialogue": { + "text": "I recommend that we start by defining coding standards for different programming languages we use.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 21.08, + "finishTime": 24.56, + "dialogue": { + "text": "I agree with you. It might help to have a clear style guide for each language.", + "align": "left" + } + }, + { + "character": "Bob", + "startTime": 24.88, + "finishTime": 30.14, + "dialogue": { + "text": "Also, I would advise that we regularly review and update these guidelines as our projects evolve.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 30.14, + "finishTime": 35.08, + "dialogue": { + "text": "Yeah, consistency is essential. I'll go ahead and start with defining those coding standards.", + "align": "right" + } + }, + { + "character": "Bob", + "startTime": 35.3, + "finishTime": 38.56, + "dialogue": { + "text": "Great. I'm happy for you to lead that effort if that's ok with you.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 39.06 + }, + { + "character": "Bob", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 39.56 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md deleted file mode 100644 index a97c197e22e..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-share-your-progress-in-weekly-stand-up-meetings/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1337801e88911c2ef96b -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md deleted file mode 100644 index 5674935eed0..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c1008a9659e8059217d76 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Watch the video above to understand the context of the upcoming lessons. - -# --assignment-- - -Watch the video diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md index d085c3b2cab..b016ec1e094 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/6614abad2657585c6229fb4a.md @@ -1,6 +1,6 @@ --- id: 6614abad2657585c6229fb4a -title: "Dialogue 2: Discussing Strategies for the Release of A Product at a Conference Call" +title: "Dialogue 2: Discussing Strategies for the Release of a Product at a Conference Call" challengeType: 21 dashedName: dialogue-2-discussing-strategies-for-the-release-of-a-product-at-a-conference-call --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md deleted file mode 100644 index 5ca1ab675ce..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655cd3d0c619828de67b47bf -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md index b5a5f1ca4d9..892bc8e1215 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cbab2498e4a1d1f592ac.md @@ -7,8 +7,136 @@ dashedName: dialogue-1-discussing-basic-programming # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Brian", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sophie", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 10.02, + "finishTime": 13, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 13.36, + "finishTime": 20.72, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating! I've learned about variables, data types, and even conditional statements in many languages.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 21.04, + "finishTime": 25.82, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 26.04, + "finishTime": 28.44, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 28.44, + "finishTime": 31.84, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "left" + } + }, + { + "character": "Sophie", + "startTime": 31.84, + "finishTime": 40.96, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator. For example, you can declare a variable like this: name = 'Sophie'.", + "align": "right" + } + }, + { + "character": "Brian", + "startTime": 40.96, + "finishTime": 44.06, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "left" + } + }, + { + "character": "Sophie", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 44.56 + }, + { + "character": "Brian", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 45.06 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md index 9ebd4073a54..0c122c2cee0 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629cc728221a1a4a5613320.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-2 --- - + # --description-- @@ -51,3 +48,51 @@ This phrase is used to ask about someone's situation, not for directions. ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md index 16a46bd35ff..904c5331ae7 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce1a4f6581a7266d6ca9.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-3 --- - + # --description-- -The Present Perfect Continuous tense is used talk about actions or situations that started in the past and is still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. +The **Present Perfect Continuous tense** is used talk about actions or situations that started in the past and are still happening now. It is very useful when you want to emphasize the duration of an activity or that it is an ongoing process. -Here’s how to form the Present Perfect Continuous: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. +Here’s how to form the **Present Perfect Continuous**: Subject + `has/have been` + `-ing` form of the verb. This tense is often used with expressions of time such as `for` and `since`. `For` is used with a period of time like two years or six months, while `since` is used with a specific point in time, like 2018 or this morning. Examples: @@ -22,11 +19,13 @@ Examples: `She has been working here since 2018.` It means she started working here in 2018 and is still working here. +Listen to Brian and fill in the blanks. + # --fillInTheBlank-- ## --sentence-- -`Hey, Sophie, how's it going? I heard you've _ _ a lot about programming languages.` +`Hey, Sophie. How's it going? I've heard you've _ _ a lot about programming languages.` ## --blanks-- @@ -34,7 +33,7 @@ Examples: ### --feedback-- -This word is part of the Present Perfect Continuous tense. +This is the verb `to be`, in the form used as a part of the **Present Perfect Continuous** tense. --- @@ -42,4 +41,52 @@ This word is part of the Present Perfect Continuous tense. ### --feedback-- -This is a verb with `-ing`. It indicates what Sophie has been doing continuously. +This is a verb with `-ing`. It indicates what Sophie has been doing continuously. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md index 6ce11e747a5..b86fbb2404c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629ce6bffd1efa9c6c57eaa.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-1 --- - + # --description-- @@ -20,15 +17,15 @@ For example, when you see an old friend, you may say `Hey, how's it going? I hav ## --sentence-- -`Hey, Sophie, _ it _? I heard you've been learning a lot about programming languages.` +`Hey, Sophie. _ it _?` ## --blanks-- -`how's` +`How's` ### --feedback-- -This contraction is commonly used in informal greetings. +This contraction is commonly used in informal greetings. Capitalize the first word. --- @@ -37,3 +34,51 @@ This contraction is commonly used in informal greetings. ### --feedback-- This word completes the common informal greeting asking about someone's general state. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 2.08 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.08, + "dialogue": { + "text": "Hey, Sophie. How's it going?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 3.58 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md index 77e531330ec..0a250563e9d 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e10635cf1ec412861da1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-6 --- - + # --description-- @@ -24,7 +21,7 @@ This phrase can also mean `very much`. For example, `I like your idea a lot.` me ## --sentence-- -`Hey, Sophie, how's it going? I heard you've been learning _ _ about programming languages.` +`Hey, Sophie. How's it going? I've heard you've been learning _ _ about programming languages.` ## --blanks-- @@ -41,3 +38,51 @@ This article is often used as part of the expression to emphasize quantity or de ### --feedback-- This noun completes a common phrase used to indicate a large amount or many. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md index c8016cd6ca5..4192e6a021f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e49677d89dcc9614251c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-8 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has learned a lot about programming languages and is still learning. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 5.3 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.8 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md index 5cb62644a65..2b76f62dd24 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e6f8758adad2ae0894b0.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-9 --- - + # --description-- @@ -38,3 +35,51 @@ This adjective is used to describe something that is surprising, unusual, or har ### --feedback-- This noun introduces a specific aspect or element of the situation being discussed. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md index cbe1eaa30fb..6e33ddbc592 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/6629e96c186102d8a65bfbb9.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-10 --- - + # --description-- @@ -43,3 +40,51 @@ This word is used to introduce the existence or presence of something. ### --feedback-- This verb is used to describe the existence of plural nouns or multiple items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md index 4c88b1f73f6..7708b16b4fa 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a26c7a3d49b0a4a19a00f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-13 --- - + # --description-- @@ -29,3 +26,51 @@ For example, `There are so many kinds of technology out there.` It means that th ### --feedback-- It is used to talk about things that exist or are available in the world. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 6, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md index 2c9dde7a095..4de8209e3d8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2779b2aeb80c10508bf2.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-14 --- - + # --description-- @@ -52,3 +48,79 @@ Sophie directly responds to Brian’s observation by pointing out an interesting ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 9.02 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 6.3, + "dialogue": { + "text": "Hey, Sophie. How's it going? I've heard you've been learning a lot about programming languages.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.65 + }, + { + "character": "Sophie", + "opacity": 1, + "startTime": 6.65 + }, + { + "character": "Sophie", + "startTime": 7, + "finishTime": 10.02, + "dialogue": { + "text": "Yeah, the crazy part is that there are so many out there.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.52 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md index c34738da58e..a95a6663ee3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a292bb1622d1012b5b86e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-15 --- - + # --description-- @@ -38,3 +35,50 @@ This word starts questions about quantities, conditions, or reasons. It is used with uncountable nouns like `time` to inquire about the quantity. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md index 55143a5236b..4d5859bd7ba 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2990757239112d74142e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-16 --- - + # --description-- @@ -16,6 +13,8 @@ Let's review the present perfect tense in this task. It is used to describe acti The phrase `spend time on` is used to describe using a certain amount of time to a specific activity, task, or subject. An example is `She spends a lot of time on her homework.` The past participle of `spend` is `spent`. +Listen to Brian and fill in the blank. + # --fillInTheBlank-- ## --sentence-- @@ -28,4 +27,52 @@ The phrase `spend time on` is used to describe using a certain amount of time to ### --feedback-- -It is the past participle of `spend`, used with `have` to form the present perfect tense. +It is the past participle of `spend`, used with `have` to form the **Present Perfect** tense. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md index 993abdb2f42..b7fe231f667 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2b1f0c9314142ae87955.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-17 --- - + # --description-- @@ -51,3 +48,51 @@ Brian’s question is specifically about the amount of time, not about who was w ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 9.02, + "finishTimestamp": 12 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 3.98, + "dialogue": { + "text": "That's awesome. How much time have you spent on it?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.48 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md index 4a09dfbb3b2..7d10f8fdb15 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a2f2a2c16bf1a9f3609b7.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-18 --- - + # --description-- @@ -20,7 +17,7 @@ Sophie: I've spent much of my free time on it. ## --sentence-- -`I've spent _ _ my _ time on it.` +`I spent _ _ my _ time on it.` ## --blanks-- @@ -45,3 +42,51 @@ This word connects what follows, showing that it is a part of a whole. ### --feedback-- This adjective describes time that is available without commitments or obligations. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md index 411cdf2299f..3a21706a14a 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a304552f2631d63aa7cab.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-19 --- - + # --description-- @@ -18,7 +15,7 @@ Please answer the question below. ## --text-- -What does Sophie mean about how she has used her time? +What does Sophie say about the way she uses her time? ## --answers-- @@ -46,8 +43,56 @@ There's no indication of her enjoyment; she simply states how she spends her fre --- -She has dedicated a big portion of her free time to a specific activity. +She dedicates a big portion of her free time to a specific activity. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 14.16 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 2.8, + "dialogue": { + "text": "I spent much of my free time on it.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 3.3 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md index 0b9b1b6d99f..8da9a61ebb7 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a30d3f1071a1ef14eefe1.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-20 --- - + # --description-- @@ -18,7 +15,7 @@ The word `fascinating` is used to describe something that is extremely interesti ## --sentence-- -`I've spent much of my free time on it. It's _.` +`I spent much of my free time on it. It's _.` ## --blanks-- @@ -27,3 +24,51 @@ The word `fascinating` is used to describe something that is extremely interesti ### --feedback-- It is used to express that something is extremely interesting or attractive. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 12.36, + "finishTimestamp": 15.24 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.88, + "dialogue": { + "text": "I spent much of my free time on it. It's fascinating", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.38 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md index cf69468f3a4..150a76e6eb3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662a35f7eaaa932ab0973d0c.md @@ -5,16 +5,13 @@ challengeType: 22 dashedName: task-21 --- - + # --description-- -Learn `variable`, `data type` and `conditional statement` in programming. +Learn `variables`, `data types` and `conditional statements` in programming. -A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` is a variable holding the value 5. +A `variable` is like a box where you can store information. This information can be numbers, text, or other types of data. You can change what's in the box, which is why it's called a `variable` – because it can vary. For example, in `x = 5`, `x` temporarily holds the value 5. A `data type` is a classification that specifies the type of data that a `variable` can hold. Common `data types` include integers (whole numbers), floats (numbers with a decimal), strings (text), and booleans (true or false). For example, if `age = 21`, the `data type` is an integer. @@ -73,3 +70,51 @@ They are the individual commands or lines of code that a computer program execut ### --feedback-- This word is used to indicate a large number of something, usually with countable nouns. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md index 6121382f69a..0447bd93c9a 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b5fdf67f4ea087ff7e590.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-22 --- - + # --description-- @@ -51,3 +48,51 @@ Sophie has been learning various programming concepts across multiple programmin ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 15.04, + "finishTimestamp": 19.92 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.88, + "dialogue": { + "text": "I've learned about variables, data types, and even conditional statements in many languages.", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 6.38 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md index a7d07017fd2..d9933e9a1d9 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b718c7709f809559d5806.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-23 --- - + # --description-- @@ -45,3 +42,51 @@ This verb is commonly used to request assistance or support in doing something. ### --feedback-- This preposition is used here to link the verb with what assistance is needed for. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md index 82d2aaf695a..7c6ab042630 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b74055c06e60af4f9b976.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-24 --- - + # --description-- @@ -51,3 +48,51 @@ Brian explicitly states that he has a question about Python, indicating he is lo ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 20.04, + "finishTimestamp": 24.82 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "That's great to hear. You know, I have a question about Python. Can you help me with that?", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 6.28 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md index b164e4bc9c2..243d74305b8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7577212ab40b8534efbf.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-25 --- - + # --description-- @@ -53,3 +50,51 @@ Sophie has a good understanding of Python. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 24.84, + "finishTimestamp": 27.44 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 3.6, + "dialogue": { + "text": "Sure. I know Python pretty well. What's your question?", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 4.1 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md index 4165b99384d..e2797452131 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b772113dc330c283730f3.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-26 --- - + # --description-- @@ -38,3 +35,50 @@ This word refers to introducing a new variable with a specific value. It refers to names used in programs to store data that can be changed during execution. +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 27.44, + "finishTimestamp": 30.84 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.4, + "dialogue": { + "text": "How do you declare variables in Python? I'm curious.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.9 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md index bc538c23a2e..2026b02b3a1 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b7d0fda698d0d84ac67f4.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-27 --- - + # --description-- @@ -35,3 +32,60 @@ This preposition is used to introduce the method or means through which somethin ### --feedback-- This is the `-ing` form of a verb, which in this context refers to applying a specific tool or method to perform a task. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md index 214867e7073..6ea47d2c073 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b803fd9ddc00e943e350e.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-28 --- - + # --description-- @@ -35,3 +32,60 @@ It refers to the action of setting values in programming. ### --feedback-- This word is used in programming to refer to a symbol that performs an operation, in this case, assigning a value. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md index 7f5b6a61c10..9241a8251c3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b81901b178a0fd33f093c.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-29 --- - + # --description-- @@ -51,3 +48,60 @@ Python does not use any keywords like `variable` to declare variables. It simply ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 39.96 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.62 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md index 7579d17d025..5365ce87d58 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b82c8d47f8a1076172391.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-30 --- - + # --description-- @@ -18,7 +15,7 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ## --sentence-- -`Got it! Thanks, Sophie. I _ your help.` +`Got it. Thanks, Sophie. I _ your help.` ## --blanks-- @@ -27,3 +24,51 @@ To `appreciate one's help` means to be thankful or grateful for the assistance s ### --feedback-- It means to be thankful for someone's assistance or support. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 39.96, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Brian", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Brian", + "startTime": 1, + "finishTime": 4.1, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 4.6 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md index 3e86f7ab90c..c7bdb94bd1e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b83b12cab3910d87fdebc.md @@ -5,11 +5,7 @@ challengeType: 19 dashedName: task-31 --- - + # --description-- @@ -52,3 +48,88 @@ Brian's response directly addresses the information given about declaring variab ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sophie", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Brian", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-1.mp3", + "startTime": 1, + "startTimestamp": 30.84, + "finishTimestamp": 43.06 + } + }, + "commands": [ + { + "character": "Sophie", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sophie", + "startTime": 1, + "finishTime": 5.78, + "dialogue": { + "text": "In Python, you declare variables by using the variable name and the assignment operator.", + "align": "center" + } + }, + { + "character": "Sophie", + "startTime": 5.78, + "finishTime": 10.12, + "dialogue": { + "text": "For example, you can declare a variable like this \"name = 'Sophie'\".", + "align": "center" + } + }, + { + "character": "Sophie", + "opacity": 0, + "startTime": 10.12 + }, + { + "character": "Brian", + "opacity": 1, + "startTime": 10.12 + }, + { + "character": "Brian", + "startTime": 10.12, + "finishTime": 13.22, + "dialogue": { + "text": "Got it. Thanks, Sophie. I appreciate your help.", + "align": "center" + } + }, + { + "character": "Brian", + "opacity": 0, + "startTime": 13.72 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md index 8857cf77369..74bb0e2be9d 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b868dab90d512fc912cad.md @@ -7,8 +7,145 @@ dashedName: dialogue-2-discussing-debugging # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Sarah", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Tom", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 6.02, + "finishTime": 10.94, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 11.5, + "finishTime": 15.28, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 15.5, + "finishTime": 16.98, + "dialogue": { + "text": "I have a loop inside it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 17.2, + "finishTime": 20.22, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 20.7, + "finishTime": 23.54, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "left" + } + }, + { + "character": "Tom", + "startTime": 24.06, + "finishTime": 26.44, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 26.8, + "finishTime": 31.06, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 31.3, + "finishTime": 32.44, + "dialogue": { + "text": "They are super helpful.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 32.92, + "finishTime": 34.54, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "left" + } + }, + { + "character": "Tom", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 35.04 + }, + { + "character": "Sarah", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 35.54 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md index 5c18d945248..b8c1242472e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b871f32087113511f262a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-32 --- - + # --description-- @@ -20,7 +17,7 @@ The phrase `have trouble with` is used to express difficulty in dealing with a s ## --sentence-- -`Hey, Tom, I'm _ some _ _ my code. I can't figure out what's wrong.` +`Hey, Tom. I'm _ some _ _ my code. I can't figure out what's wrong.` ## --blanks-- @@ -46,3 +43,50 @@ This noun describes difficulties or problems with something specific. This preposition is used to connect the difficulty someone is having to the object of their difficulty, in this case, `my code`. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md index 2bb6d1ff0be..53255849ebf 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b888ba2c1d713f3a05203.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-33 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I need to figure out how to install this software` means the perso ## --sentence-- -`Hey, Tom, I'm having some trouble with my code. I can't _ _ what's wrong.` +`Hey, Tom. I'm having some trouble with my code. I can't _ _ what's wrong.` ## --blanks-- @@ -37,3 +34,51 @@ This verb is used in a phrase that means trying to understand or solve something ### --feedback-- This word completes the phrase emphasizing the process of solving or discovering the cause of a problem. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md index 2b3db60c5de..e01b3cd4577 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662b8975b11107146a49ec58.md @@ -5,10 +5,7 @@ challengeType: 19 dashedName: task-34 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah’s description of not being able to figure out the issue suggests she is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 4.26 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.26, + "dialogue": { + "text": "Hey, Tom. I'm having some trouble with my code. I can't figure out what's wrong.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.76 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md index 23c0fde6fd0..cb387567fc3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4dc39f884e1d15ed5f7a.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-35 --- - + # --description-- @@ -22,7 +19,7 @@ For example, `She spent the whole day debugging the code.` This means she was fi ## --sentence-- -`Don't worry. _ is a common challenge for many programmers. How much code are you working on?` +`Don't worry. _ is a common challenge for programmers.` ## --blanks-- @@ -31,3 +28,51 @@ For example, `She spent the whole day debugging the code.` This means she was fi ### --feedback-- This is the term used for finding and fixing errors in a computer program. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md index f085e6e0b87..c6249a91dcf 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e4f2edbb46a1dc6efc94f.md @@ -5,10 +5,7 @@ challengeType: 22 dashedName: task-36 --- - + # --description-- @@ -20,7 +17,7 @@ Tom: Don't worry. Debugging is a common challenge for many programmers. ## --sentence-- -`Don't worry. Debugging is a _ _ for many programmers. How much code are you working on?` +`Don't worry. Debugging is a _ _ for programmers.` ## --blanks-- @@ -38,3 +35,50 @@ This adjective describes something that occurs frequently or is usual among a gr This noun refers to a difficult task or problem that requires effort to solve or overcome. +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md index 2a51eec50f4..e712b1c6721 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e50c396d1771e709de60a.md @@ -1,14 +1,11 @@ --- id: 662e50c396d1771e709de60a -title: Task 38 +title: Task 37 challengeType: 19 -dashedName: task-38 +dashedName: task-37 --- - + # --description-- @@ -34,11 +31,11 @@ Only inexperienced programmers find debugging challenging. ### --feedback-- -Tom mentions that it is a common challenge, indicating it affects many programmers, not just the inexperienced. +Tom mentions that it is a common challenge, indicating it affects programmers, not just the inexperienced. --- -Debugging is a normal part of programming that many find challenging. +Debugging is a normal part of programming that people find challenging. --- @@ -46,8 +43,56 @@ Debugging is unnecessary for skilled programmers. ### --feedback-- -The statement highlights that even many programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. +The statement highlights that even experienced programmers face this challenge, suggesting it is not about skill level but a general aspect of programming. ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 8.18 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.16, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.66 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md deleted file mode 100644 index 4673eaf52c0..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e512b0006a11ed939b21c.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: 662e512b0006a11ed939b21c -title: Task 37 -challengeType: 22 -dashedName: task-37 ---- - - - -# --description-- - -`Many` is used to indicate a large number of people or things, implying a significant quantity. It is often used with countable nouns. `Programmers` refers to people who write and test computer programs. - -In this context, `many programmers` suggests that a large number of these professionals find debugging to be a challenging task. - -# --fillInTheBlank-- - -## --sentence-- - -`Don't worry. Debugging is a common challenge for _ _.` - -## --blanks-- - -`many` - -### --feedback-- - -This word is used to express that a large number of individuals share this experience. - ---- - -`programmers` - -### --feedback-- - -They are individuals who code and develop software. - diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md index c9486a7155d..2974df27911 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662e523b4ee2e71f9c3ea9c7.md @@ -1,14 +1,11 @@ --- id: 662e523b4ee2e71f9c3ea9c7 -title: Task 39 +title: Task 38 challengeType: 22 -dashedName: task-39 +dashedName: task-38 --- - + # --description-- @@ -45,3 +42,51 @@ It is used with uncountable nouns to ask about the quantity, emphasizing the sca ### --feedback-- It refers to written commands in computer programming. Here, it's treated as an uncountable noun because the focus is on the quantity of work involved, not on counting individual lines or pieces. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 8.5, + "finishTimestamp": 9.94 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.44, + "dialogue": { + "text": "How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.94 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md index 4aa72bcc7b2..ede05599f7c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8454ca90123631dfc51.md @@ -1,8 +1,8 @@ --- id: 662ef8454ca90123631dfc51 -title: Task 41 +title: Task 40 challengeType: 19 -dashedName: task-41 +dashedName: task-40 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md index 2241c7efff1..0ce8080bef7 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662ef8c53ee35f23bb031313.md @@ -1,14 +1,11 @@ --- id: 662ef8c53ee35f23bb031313 -title: Task 40 +title: Task 39 challengeType: 22 -dashedName: task-40 +dashedName: task-39 --- - + # --description-- @@ -45,3 +42,51 @@ This noun is used to express a large amount when combined with the preceding and ### --feedback-- This preposition connects a phrase and a noun, showing that the large amount being referred to is `code`. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md index 79a37e0b30e..aa71b0a3aae 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efac808e7e024ab2672f2.md @@ -1,14 +1,11 @@ --- id: 662efac808e7e024ab2672f2 -title: Task 45 +title: Task 44 challengeType: 22 -dashedName: task-45 +dashedName: task-44 --- - + # --description-- @@ -43,3 +40,51 @@ This term describes a set of code that performs a specific task and can be reuse ### --feedback-- It describes a sequence in code that repeats itself either a set number of times or until a certain condition changes. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 10.5, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 6.48, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.98 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md index 3e8e56845aa..3653e610328 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efb9464339d2518178b6e.md @@ -1,8 +1,8 @@ --- id: 662efb9464339d2518178b6e -title: Task 42 +title: Task 41 challengeType: 19 -dashedName: task-42 +dashedName: task-41 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md index 58ba2193a36..2c4e3c50ebc 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efc55d552e72591518e31.md @@ -1,8 +1,8 @@ --- id: 662efc55d552e72591518e31 -title: Task 43 +title: Task 42 challengeType: 19 -dashedName: task-43 +dashedName: task-42 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md index 7c15ad62d3e..1a9cb6d43ad 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efd365564b6260b79b0e9.md @@ -1,8 +1,8 @@ --- id: 662efd365564b6260b79b0e9 -title: Task 44 +title: Task 43 challengeType: 19 -dashedName: task-44 +dashedName: task-43 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md index 5cc25ea39c8..e2ff33834d8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662efee6946fda26f424c1a5.md @@ -1,15 +1,11 @@ --- id: 662efee6946fda26f424c1a5 -title: Task 46 +title: Task 45 challengeType: 19 -dashedName: task-46 +dashedName: task-45 --- - + # --description-- @@ -52,3 +48,79 @@ Sarah does not ask for help in understanding the code; she merely explains her c ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 5.02, + "finishTimestamp": 15.98 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.92, + "dialogue": { + "text": "Don't worry. Debugging is a common challenge for programmers. How much code are you working on?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 6.2 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 6.2 + }, + { + "character": "Sarah", + "startTime": 6.48, + "finishTime": 11.96, + "dialogue": { + "text": "Well, it's actually a lot of code, but the issue is in a specific function. I have a loop inside it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.46 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md index 59aa7a8f097..9310a54a53e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662effd7a99b2d275f0ff610.md @@ -1,14 +1,11 @@ --- id: 662effd7a99b2d275f0ff610 -title: Task 47 +title: Task 46 challengeType: 22 -dashedName: task-47 +dashedName: task-46 --- - + # --description-- @@ -47,3 +44,51 @@ It is used here as part of the phrase to express capability or possibility. ### --feedback-- It completes the phrase, forming an expression that means having the capability to do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md index d4a3734b216..01bbf2d2d97 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f00bdd41bbe27edf749fa.md @@ -1,14 +1,11 @@ --- id: 662f00bdd41bbe27edf749fa -title: Task 48 +title: Task 47 challengeType: 19 -dashedName: task-48 +dashedName: task-47 --- - + # --description-- @@ -51,3 +48,51 @@ There is no indication that Tom feels obligated; he voluntarily offers potential ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 16.2, + "finishTimestamp": 19.22 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 4.02, + "dialogue": { + "text": "I see. Can you show me your code? I might be able to help.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 4.52 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md index 95cb0172043..f55a7b303a9 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0151b4dc8e284a8554fa.md @@ -1,14 +1,11 @@ --- id: 662f0151b4dc8e284a8554fa -title: Task 49 +title: Task 48 challengeType: 19 -dashedName: task-49 +dashedName: task-48 --- - + # --description-- @@ -51,3 +48,51 @@ While `Sarah's` would indicate ownership by Sarah, `this file's` indicates somet ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 19.5, + "finishTimestamp": 22.54 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Sure. It's in this file's code. Let me find it.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md index d28f5a50ab1..3ad5f55b79c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0277f7bbb028dbc2c734.md @@ -1,14 +1,11 @@ --- id: 662f0277f7bbb028dbc2c734 -title: Task 50 +title: Task 49 challengeType: 22 -dashedName: task-50 +dashedName: task-49 --- - + # --description-- @@ -47,3 +44,51 @@ This verb helps form expressions about the presence of multiple items. ### --feedback-- This word is used to describe a lot of items. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 25.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 3.88 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md index 4e5ae11cbe3..dcc01bbf297 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f047a8839a2298e1e8b3e.md @@ -1,8 +1,8 @@ --- id: 662f047a8839a2298e1e8b3e -title: Task 51 +title: Task 50 challengeType: 19 -dashedName: task-51 +dashedName: task-50 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md index 9c3d4bd8ad1..42b7138612e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f053a70bb3a2a154993c0.md @@ -1,8 +1,8 @@ --- id: 662f053a70bb3a2a154993c0 -title: Task 52 +title: Task 51 challengeType: 19 -dashedName: task-52 +dashedName: task-51 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md index 32afe513ddc..47f5af929d9 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f062232f1962aa082710a.md @@ -1,8 +1,8 @@ --- id: 662f062232f1962aa082710a -title: Task 53 +title: Task 52 challengeType: 19 -dashedName: task-53 +dashedName: task-52 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md index 187b210df66..c270f0d3d60 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f074021418e2b24937af7.md @@ -1,14 +1,11 @@ --- id: 662f074021418e2b24937af7 -title: Task 54 +title: Task 53 challengeType: 22 -dashedName: task-54 +dashedName: task-53 --- - + # --description-- @@ -59,3 +56,51 @@ They are software additions that extend the capabilities of the IDE. ### --feedback-- Similar to extensions, these are software components that add specific features to an existing program, enhancing functionality. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 25.6, + "finishTimestamp": 30.06 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.46, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.96 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md index d134b495ecf..f4a7505f9c7 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0839522f5e2bb4158b6f.md @@ -1,8 +1,8 @@ --- id: 662f0839522f5e2bb4158b6f -title: Task 56 +title: Task 55 challengeType: 19 -dashedName: task-56 +dashedName: task-55 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md index f6fddd59fcd..dbcb2ba27ce 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f095c43dddc2c58d2e61f.md @@ -1,14 +1,11 @@ --- id: 662f095c43dddc2c58d2e61f -title: Task 55 +title: Task 54 challengeType: 22 -dashedName: task-55 +dashedName: task-54 --- - + # --description-- @@ -39,3 +36,51 @@ This word is used to emphasize the degree of the adjective that follows. ### --feedback-- This adjective describes someone or something that provides valuable support or assistance. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 30.3, + "finishTimestamp": 31.44 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.14, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.64 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md index a17c49545a9..043e9d52c8f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0b68050ee62d22149718.md @@ -1,14 +1,11 @@ --- id: 662f0b68050ee62d22149718 -title: Task 57 +title: Task 56 challengeType: 22 -dashedName: task-57 +dashedName: task-56 --- - + # --description-- @@ -45,3 +42,51 @@ This preposition helps form the phrase indicating ongoing consideration or reten ### --feedback-- This noun completes the expression, relating to the mental process of remembering or considering information. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 31.92, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.82, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.32 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md index 450f28a7d4c..41378a7c736 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0d350c37f42de48847fe.md @@ -1,15 +1,11 @@ --- id: 662f0d350c37f42de48847fe -title: Task 58 +title: Task 57 challengeType: 19 -dashedName: task-58 +dashedName: task-57 --- - + # --description-- @@ -52,3 +48,97 @@ Tom recommends various debugging tools and mentions that extensions and plugins ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-center.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-2.mp3", + "startTime": 1, + "startTimestamp": 23.06, + "finishTimestamp": 33.74 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 3.38, + "dialogue": { + "text": "There are many debugging tools you can use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 3.74, + "finishTime": 8, + "dialogue": { + "text": "Depending on the IDE that you're using, there are many extensions and plugins to use.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 8.24, + "finishTime": 9.38, + "dialogue": { + "text": "They are super helpful.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 9.62 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 9.62 + }, + { + "character": "Sarah", + "startTime": 9.86, + "finishTime": 11.68, + "dialogue": { + "text": "I'll keep that in mind. Thanks, Tom.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 12.18 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md index 2f5706b6b3a..ea4c4f0556f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f0ea56ef95d3017740a5c.md @@ -7,8 +7,136 @@ dashedName: dialogue-3-talking-about-oop # --description-- -Watch the video below to understand the context of the upcoming lessons. +Watch the video to understand the context of the upcoming lessons. # --assignment-- Watch the video + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 } + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1 + }, + "alwaysShowDialogue": true + }, + "commands": [ + { + "character": "Tom", + "position": { "x": 25, "y": 0, "z": 1 }, + "startTime": 0 + }, + { + "character": "Sarah", + "position": { "x": 70, "y": 0, "z": 1 }, + "startTime": 0.5 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 7.54, + "finishTime": 12.1, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages. How much do you know about it so far?", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 12.7, + "finishTime": 18.12, + "dialogue": { + "text": "Not much, really. I understand that there are classes and methods, but I've never used them in my code.", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 18.52, + "finishTime": 22.6, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 22.98, + "finishTime": 27.74, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 27.82, + "finishTime": 31.8, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "right" + } + }, + { + "character": "Tom", + "startTime": 32.62, + "finishTime": 36.72, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "left" + } + }, + { + "character": "Sarah", + "startTime": 37.22, + "finishTime": 39.72, + "dialogue": { + "text": "Of course. I have a book on OOP's principles.", + "align": "right" + } + }, + { + "character": "Sarah", + "startTime": 40.2, + "finishTime": 42.90, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "right" + } + }, + { + "character": "Sarah", + "position": { "x": 125, "y": 0, "z": 1 }, + "startTime": 43.40 + }, + { + "character": "Tom", + "position": { "x": -25, "y": 0, "z": 1 }, + "startTime": 43.90 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md index 3e9aaf595e7..c1511f3f353 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f1025a0cbc2307f2ee9a7.md @@ -1,14 +1,11 @@ --- id: 662f1025a0cbc2307f2ee9a7 -title: Task 61 +title: Task 60 challengeType: 22 -dashedName: task-61 +dashedName: task-60 --- - + # --description-- @@ -43,3 +40,51 @@ It means the process of designing and building an executable computer program to ### --feedback-- It is an abstract idea or a general notion, in this case, referring to a particular programming paradigm. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md index 214e9e24d74..fde0a6151f8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f113e19790531297cec7b.md @@ -1,8 +1,8 @@ --- id: 662f113e19790531297cec7b -title: Task 59 +title: Task 58 challengeType: 19 -dashedName: task-59 +dashedName: task-58 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md index 0d86579288e..3eb966a3b96 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f12006df30c31b9cb5a3c.md @@ -1,8 +1,8 @@ --- id: 662f12006df30c31b9cb5a3c -title: Task 60 +title: Task 59 challengeType: 19 -dashedName: task-60 +dashedName: task-59 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md index e3d16a26775..a43ca29128b 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f150f6e708633720c8c52.md @@ -1,14 +1,11 @@ --- id: 662f150f6e708633720c8c52 -title: Task 62 +title: Task 61 challengeType: 19 -dashedName: task-62 +dashedName: task-61 --- - + # --description-- @@ -51,3 +48,51 @@ Tom mentioned that object-oriented programming is a new concept for him, not tha ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 0, + "finishTimestamp": 6.28 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 7.28, + "dialogue": { + "text": "Hey, Sarah, I was reading about object-oriented programming on the internet. It's a new concept for me.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 7.78 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md index 0f172a6e82c..bf9ac8ab773 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f16078a88463405b894c6.md @@ -1,14 +1,11 @@ --- id: 662f16078a88463405b894c6 -title: Task 63 +title: Task 62 challengeType: 22 -dashedName: task-63 +dashedName: task-62 --- - + # --description-- @@ -45,3 +42,51 @@ This adjective describes something current or recent, in this context, referring ### --feedback-- In this context, they are sets of rules and syntax that allow humans to write instructions that a computer can execute. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 9.38 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 4.04, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.54 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md index 2478f18f864..14a9bf0bfc1 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f17bf83ad0234a0261d92.md @@ -1,14 +1,11 @@ --- id: 662f17bf83ad0234a0261d92 -title: Task 64 +title: Task 63 challengeType: 22 -dashedName: task-64 +dashedName: task-63 --- - + # --description-- @@ -37,3 +34,51 @@ This word starts questions that ask about the degree or extent of something. ### --feedback-- It is used to inquire about the quantity or extent of non-countable items, like knowledge in this context. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 9.52, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 2.58, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 3.08 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md index ebd41b4ab1e..163326afdd3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18633253ba3511982c4e.md @@ -1,14 +1,11 @@ --- id: 662f18633253ba3511982c4e -title: Task 65 +title: Task 64 challengeType: 19 -dashedName: task-65 +dashedName: task-64 --- - + # --description-- @@ -51,3 +48,60 @@ It refers to object-oriented programming. ## --video-solution-- 4 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 11.1 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.26 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md index 55908c9f3e4..665a9672d4b 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f18dd52d5583574fcb9e0.md @@ -1,14 +1,11 @@ --- id: 662f18dd52d5583574fcb9e0 -title: Task 66 +title: Task 65 challengeType: 22 -dashedName: task-66 +dashedName: task-65 --- - + # --description-- @@ -33,3 +30,51 @@ Question: `How many books do you own?` Answer: `Not many.` ### --feedback-- It is used here to respond to a question about the extent of uncountable knowledge. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 11.5, + "finishTimestamp": 12.6 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 2.1, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 2.6 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md index c6098c37a37..3be185d4d22 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f2e4b96f60636d44eb7db.md @@ -1,14 +1,11 @@ --- id: 662f2e4b96f60636d44eb7db -title: Task 67 +title: Task 66 challengeType: 22 -dashedName: task-67 +dashedName: task-66 --- - + # --description-- @@ -24,7 +21,7 @@ For instance, in a `Calculator class`, a `method` might be `add(number1, number2 ## --sentence-- -`I understand _ are _ and _, but _ _ used them in my code.` +`I understand that _ are _ and _, but _ _ used them in my code.` ## --blanks-- @@ -65,3 +62,51 @@ This is a contraction for `I have`, used here to describe personal experience wi ### --feedback-- It is used to indicate that something has not happened at any time in the past. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 12.8, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.32, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.82 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md index 24d457c3b76..7373ccf9668 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f31024608f337c0bf53a9.md @@ -1,15 +1,11 @@ --- id: 662f31024608f337c0bf53a9 -title: Task 68 +title: Task 67 challengeType: 19 -dashedName: task-68 +dashedName: task-67 --- - + # --description-- @@ -52,3 +48,97 @@ Tom does know something because he talks about classes and methods, so he isn’ ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + }, + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 6.34, + "finishTimestamp": 17.12 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.94, + "dialogue": { + "text": "Object-oriented programming is used in many modern languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 4.18, + "finishTime": 5.76, + "dialogue": { + "text": "How much do you know about it so far?", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 6.06 + }, + { + "character": "Tom", + "opacity": 1, + "startTime": 6.06 + }, + { + "character": "Tom", + "startTime": 6.36, + "finishTime": 7.26, + "dialogue": { + "text": "Not much, really.", + "align": "center" + } + }, + { + "character": "Tom", + "startTime": 7.46, + "finishTime": 11.78, + "dialogue": { + "text": "I understand that there are classes and methods, but I've never used them in my code.", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 12.28 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md index bf4d4672e1e..9239c7d53cc 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f327b74cbce38624be994.md @@ -1,14 +1,11 @@ --- id: 662f327b74cbce38624be994 -title: Task 69 +title: Task 68 challengeType: 22 -dashedName: task-69 +dashedName: task-68 --- - + # --description-- @@ -53,3 +50,51 @@ It refers to an idea or principle that is used to plan or define actions and ope ### --feedback-- This quantifier is used to describe a large number of items, emphasizing the quantity. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 17.32, + "finishTimestamp": 21.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.48, + "dialogue": { + "text": "No worries. Object-oriented programming is a fundamental concept in many languages.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 5.98 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md index 176e170f055..57a7947b5ea 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3450de7c2139809fb72b.md @@ -1,8 +1,8 @@ --- id: 662f3450de7c2139809fb72b -title: Task 70 +title: Task 69 challengeType: 19 -dashedName: task-70 +dashedName: task-69 --- # --description-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md index bf8a6b8dc9a..19696e9709c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f36132e09c33a21645096.md @@ -1,14 +1,11 @@ --- id: 662f36132e09c33a21645096 -title: Task 71 +title: Task 70 challengeType: 22 -dashedName: task-71 +dashedName: task-70 --- - + # --description-- @@ -49,3 +46,60 @@ It refers to a detailed plan or model for constructing something complex, like s ### --feedback-- In programming, it is an entity created from a class; it can hold data and perform actions defined by the class. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md index 98bffc24003..e641aaee998 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f3815b0798f3ae730a888.md @@ -1,14 +1,11 @@ --- id: 662f3815b0798f3ae730a888 -title: Task 72 +title: Task 71 challengeType: 22 -dashedName: task-72 +dashedName: task-71 --- - + # --description-- @@ -37,3 +34,60 @@ This possessive form shows that the methods belong to the classes. It's used to ### --feedback-- This verb means to carry out, execute, or do something. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md index cddb8fbb776..10998dcd9e5 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f38df518e713b716c3e2f.md @@ -1,14 +1,11 @@ --- id: 662f38df518e713b716c3e2f -title: Task 73 +title: Task 72 challengeType: 19 -dashedName: task-73 +dashedName: task-72 --- - + # --description-- @@ -51,3 +48,60 @@ This description is incorrect as object-oriented programming is not about copyin ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 21.98, + "finishTimestamp": 30.8 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 5.76, + "dialogue": { + "text": "It involves classes, which are like blueprints for objects, and inside the classes,", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 5.84, + "finishTime": 9.82, + "dialogue": { + "text": "you find the class's methods, which are actions those objects can perform.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 10.32 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md index 09365361994..a8669ee085d 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f638a2644e13c7b450cc0.md @@ -1,14 +1,11 @@ --- id: 662f638a2644e13c7b450cc0 -title: Task 74 +title: Task 73 challengeType: 22 -dashedName: task-74 +dashedName: task-73 --- - + # --description-- @@ -20,7 +17,7 @@ For example, `I recommend this restaurant; their food is delicious.` ## --sentence-- -`That helps a lot! Can you _ a good book for me to learn more about it?` +`That helps a lot. Can you _ a good book for me to learn more about it?` ## --blanks-- @@ -29,3 +26,51 @@ For example, `I recommend this restaurant; their food is delicious.` ### --feedback-- It means to suggest something thought to be good or suitable. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md index b13448da889..4293c1b1eec 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f63e3af6b793ceb32df9d.md @@ -1,14 +1,11 @@ --- id: 662f63e3af6b793ceb32df9d -title: Task 75 +title: Task 74 challengeType: 19 -dashedName: task-75 +dashedName: task-74 --- - + # --description-- @@ -51,3 +48,51 @@ Tom's request for a book recommendation directly contradicts the idea that he is ## --video-solution-- 1 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 35.72 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.8 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md index 9a039409fc8..5bdbe752d2a 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f659f6ad8103db5d73490.md @@ -1,18 +1,15 @@ --- id: 662f659f6ad8103db5d73490 -title: Task 76 +title: Task 75 challengeType: 22 -dashedName: task-76 +dashedName: task-75 --- - + # --description-- -The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is Object-Oriented Programming (OOP). +The preposition `on` is often used to specify the subject or topic of a book or discussion. In this context, it connects the book to the topic it covers, which is `Object-Oriented Programming` (also known as `OOP`). The word `principle` refers to the fundamental theories or beliefs that form the basis for a system, in this case, the core ideas of OOP. @@ -45,3 +42,51 @@ This possessive form shows that the noun followed belongs to Object-Oriented Pro ### --feedback-- They are the basic ideas or rules that guide the structure and functioning of OOP. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md index 59349fd5577..ec6dcf0459d 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f66ed185bc53e6171be3c.md @@ -1,14 +1,11 @@ --- id: 662f66ed185bc53e6171be3c -title: Task 77 +title: Task 76 challengeType: 19 -dashedName: task-77 +dashedName: task-76 --- - + # --description-- @@ -51,3 +48,51 @@ Sarah states that she has the book, indicating that she owns it and is referring ## --video-solution-- 2 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 36.22, + "finishTimestamp": 38.92 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md index 8d64860916f..4cf9e763669 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f67ce5ef6803efa19be3b.md @@ -1,14 +1,11 @@ --- id: 662f67ce5ef6803efa19be3b -title: Task 78 +title: Task 77 challengeType: 22 -dashedName: task-78 +dashedName: task-77 --- - + # --description-- @@ -45,3 +42,51 @@ It is used to describe a large number or quantity, emphasizing the volume. ### --feedback-- It refers to human beings collectively, typically used to discuss groups or a number of individuals. + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 39.2, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Sarah", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Sarah", + "startTime": 1, + "finishTime": 3.7, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 4.2 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md index 4114c1cc281..4ece6d83e37 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/662f69e2ea29ba3fd64e66e0.md @@ -1,15 +1,11 @@ --- id: 662f69e2ea29ba3fd64e66e0 -title: Task 79 +title: Task 78 challengeType: 19 -dashedName: task-79 +dashedName: task-78 --- - + # --description-- @@ -52,3 +48,88 @@ There is no indication that Sarah authored the book; her recommendation is based ## --video-solution-- 3 + +# --scene-- + +```json +{ + "setup": { + "background": "company2-breakroom.png", + "characters": [ + { + "character": "Tom", + "position": { + "x": 50, + "y": 15, + "z": 1.2 + }, + "opacity": 0 + }, + { + "character": "Sarah", + "position": { + "x": 50, + "y": 0, + "z": 1.4 + }, + "opacity": 0 + } + ], + "audio": { + "filename": "5.1-3.mp3", + "startTime": 1, + "startTimestamp": 31.42, + "finishTimestamp": 41.9 + } + }, + "commands": [ + { + "character": "Tom", + "opacity": 1, + "startTime": 0 + }, + { + "character": "Tom", + "startTime": 1, + "finishTime": 5.3, + "dialogue": { + "text": "That helps a lot. Can you recommend a good book for me to learn more about it?", + "align": "center" + } + }, + { + "character": "Tom", + "opacity": 0, + "startTime": 5.55 + }, + { + "character": "Sarah", + "opacity": 1, + "startTime": 5.55 + }, + { + "character": "Sarah", + "startTime": 5.8, + "finishTime": 8.3, + "dialogue": { + "text": "Of course! I have a book on OOP's principles.", + "align": "center" + } + }, + { + "character": "Sarah", + "startTime": 8.78, + "finishTime": 11.48, + "dialogue": { + "text": "I'll send you the title. It has helped many people I know.", + "align": "center" + } + }, + { + "character": "Sarah", + "opacity": 0, + "startTime": 11.98 + } + ] +} +``` diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md deleted file mode 100644 index 5561390eb8a..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-basic-programming-vocabulary-in-conversations/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c11781720d0897fc05353 -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md deleted file mode 100644 index e263f791a2b..00000000000 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-use-code-related-concepts-and-terms/dialogue-placeholder.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: 655c12384a3d2e8a0d5e3efd -title: "Dialogue: Placeholder" -challengeType: 21 -videoId: nLDychdBwUg -dashedName: dialogue-placeholder ---- - -# --description-- - -Перегляньте відео, щоб зрозуміти контекст майбутніх уроків. - -# --assignment-- - -Перегляньте відео